/*
Copyright (c) 2014-2025 AscEmu Team <http://www.ascemu.org>
This file is released under the MIT license. See README-MIT for more information.
*/

#pragma once

#include "AEVersion.hpp"

#include <cstdint>

enum SpellCastResult : uint8_t
{
#if VERSION_STRING == Classic
    SPELL_FAILED_AFFECTING_COMBAT               = 0x00, // You are in combat
    SPELL_FAILED_ALREADY_AT_FULL_HEALTH         = 0x01, // You are already at full Health
    SPELL_FAILED_ALREADY_AT_FULL_POWER          = 0x02, // You are already at full Rage (tested on warrior)
    SPELL_FAILED_ALREADY_BEING_TAMED            = 0x03, // That creature is already being tamed
    SPELL_FAILED_ALREADY_HAVE_CHARM             = 0x04, // You already control a charmed creature
    SPELL_FAILED_ALREADY_HAVE_SUMMON            = 0x05, // You already control a summoned creature
    SPELL_FAILED_ALREADY_OPEN                   = 0x06, // Already open
    SPELL_FAILED_AURA_BOUNCED                   = 0x07, // A more powerful spell is already active
    SPELL_FAILED_AUTOTRACK_INTERRUPTED          = 0x08,
    SPELL_FAILED_BAD_IMPLICIT_TARGETS           = 0x09, // You have no target
    SPELL_FAILED_BAD_TARGETS                    = 0x0A, // Invalid target
    SPELL_FAILED_CANT_BE_CHARMED                = 0x0B, // Target can't be charmed
    SPELL_FAILED_CANT_BE_DISENCHANTED           = 0x0C, // Item cannot be disenchanted
    SPELL_FAILED_CANT_BE_PROSPECTED             = 0x0D, // There are no gems in this
    SPELL_FAILED_CANT_CAST_ON_TAPPED            = 0x0E, // Target is tapped
    SPELL_FAILED_CANT_DUEL_WHILE_INVISIBLE      = 0x0F, // You can't start a duel while invisible
    SPELL_FAILED_CANT_DUEL_WHILE_STEALTHED      = 0x10, // You can't start a duel while stealthed
    SPELL_FAILED_CANT_STEALTH                   = 0x11, // You are too close to enemies
    SPELL_FAILED_CASTER_AURASTATE               = 0x12, // You can't do that yet
    SPELL_FAILED_CASTER_DEAD                    = 0x13, // You are dead
    SPELL_FAILED_CHARMED                        = 0x14, // Can't do that while charmed
    SPELL_FAILED_CHEST_IN_USE                   = 0x15, // That is already being used
    SPELL_FAILED_CONFUSED                       = 0x16, // Can't do that while confused
    SPELL_FAILED_DONT_REPORT                    = 0x17,
    SPELL_FAILED_EQUIPPED_ITEM                  = 0x18, // Must have the proper item equipped
    SPELL_FAILED_EQUIPPED_ITEM_CLASS            = 0x19, // Must have a %s equipped
    SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND   = 0x1A, // Must have a %s equipped in the main hand
    SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND    = 0x1B, // Must have a %s equipped in the offhand
    SPELL_FAILED_ERROR                          = 0x1C, // Internal error
    SPELL_FAILED_FIZZLE                         = 0x1D, // Fizzled
    SPELL_FAILED_FLEEING                        = 0x1E, // Can't do that while fleeing
    SPELL_FAILED_FOOD_LOWLEVEL                  = 0x1F, // That food's level is not high enough for your pet
    SPELL_FAILED_HIGHLEVEL                      = 0x20, // Target is too high level
    SPELL_FAILED_HUNGER_SATIATED                = 0x21,
    SPELL_FAILED_IMMUNE                         = 0x22, // Immune
    SPELL_FAILED_INTERRUPTED                    = 0x23, // Interrupted
    SPELL_FAILED_INTERRUPTED_COMBAT             = 0x24, // Interrupted
    SPELL_FAILED_ITEM_ALREADY_ENCHANTED         = 0x25, // Item is already enchanted
    SPELL_FAILED_ITEM_GONE                      = 0x26, // Item is gone
    SPELL_FAILED_ITEM_NOT_FOUND                 = 0x27, // Tried to enchant an item that didn't exist
    SPELL_FAILED_ITEM_NOT_READY                 = 0x28, // Item is not ready yet
    SPELL_FAILED_LEVEL_REQUIREMENT              = 0x29, // You are not high enough level
    SPELL_FAILED_LINE_OF_SIGHT                  = 0x2A, // Target not in line of sight
    SPELL_FAILED_LOWLEVEL                       = 0x2B, // Target is too low level
    SPELL_FAILED_LOW_CASTLEVEL                  = 0x2C, // Skill not high enough
    SPELL_FAILED_MAINHAND_EMPTY                 = 0x2D, // Your weapon hand is empty
    SPELL_FAILED_MOVING                         = 0x2E, // Can't do that while moving
    SPELL_FAILED_NEED_AMMO                      = 0x2F, // Ammo needs to be in the paper doll ammo slot before it can be fired
    SPELL_FAILED_NEED_AMMO_POUCH                = 0x30, // Requires: %s
    SPELL_FAILED_NEED_EXOTIC_AMMO               = 0x31, // Requires exotic ammo: %s
    SPELL_FAILED_NOPATH                         = 0x32, // No path available
    SPELL_FAILED_NOT_BEHIND                     = 0x33, // You must be behind your target
    SPELL_FAILED_NOT_FISHABLE                   = 0x34, // Your cast didn't land in fishable water
    SPELL_FAILED_NOT_HERE                       = 0x35, // You can't use that here
    SPELL_FAILED_NOT_INFRONT                    = 0x36, // You must be in front of your target
    SPELL_FAILED_NOT_IN_CONTROL                 = 0x37, // You are not in control of your actions
    SPELL_FAILED_NOT_KNOWN                      = 0x38, // Spell not learned
    SPELL_FAILED_NOT_MOUNTED                    = 0x39, // You are mounted
    SPELL_FAILED_NOT_ON_TAXI                    = 0x3A, // You are in flight
    SPELL_FAILED_NOT_ON_TRANSPORT               = 0x3B, // You are on a transport
    SPELL_FAILED_NOT_READY                      = 0x3C, // Spell is not ready yet
    SPELL_FAILED_NOT_SHAPESHIFT                 = 0x3D, // You are in shapeshift form
    SPELL_FAILED_NOT_STANDING                   = 0x3E, // You must be standing to do that
    SPELL_FAILED_NOT_TRADEABLE                  = 0x3F, // You can only use this on an object you own
    SPELL_FAILED_NOT_TRADING                    = 0x40, // Tried to enchant a trade item, but not trading
    SPELL_FAILED_NOT_UNSHEATHED                 = 0x41, // You have to be unsheathed to do that! (with yellow color)
    SPELL_FAILED_NOT_WHILE_GHOST                = 0x42, // Can't cast as ghost
    SPELL_FAILED_NO_AMMO                        = 0x43, // Out of ammo
    SPELL_FAILED_NO_CHARGES_REMAIN              = 0x44, // No charges remain
    SPELL_FAILED_NO_CHAMPION                    = 0x45, // You haven't selected a champion
    SPELL_FAILED_NO_COMBO_POINTS                = 0x46, // That ability requires combo points
    SPELL_FAILED_NO_DUELING                     = 0x47, // Dueling isn't allowed here
    SPELL_FAILED_NO_ENDURANCE                   = 0x48, // Not enough endurance
    SPELL_FAILED_NO_FISH                        = 0x49, // There aren't any fish here
    SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED    = 0x4A, // Can't use items while shapeshifted
    SPELL_FAILED_NO_MOUNTS_ALLOWED              = 0x4B, // You can't mount here
    SPELL_FAILED_NO_PET                         = 0x4C, // You do not have a pet
    SPELL_FAILED_NO_POWER                       = 0x4D, // Not enough mana (tested on warrior)
    SPELL_FAILED_NOTHING_TO_DISPEL              = 0x4E, // Nothing to dispel
    SPELL_FAILED_NOTHING_TO_STEAL               = 0x4F, // Nothing to steal
    SPELL_FAILED_ONLY_ABOVEWATER                = 0x50, // Cannot use while swimming
    SPELL_FAILED_ONLY_DAYTIME                   = 0x51, // Can only use during the day
    SPELL_FAILED_ONLY_INDOORS                   = 0x52, // Can only use indoors
    SPELL_FAILED_ONLY_MOUNTED                   = 0x53, // Can only use while mounted
    SPELL_FAILED_ONLY_NIGHTTIME                 = 0x54, // Can only use during the night
    SPELL_FAILED_ONLY_OUTDOORS                  = 0x55, // Can only use outside
    SPELL_FAILED_ONLY_SHAPESHIFT                = 0x56, // Must be in %s
    SPELL_FAILED_ONLY_STEALTHED                 = 0x57, // You must be in stealth mode
    SPELL_FAILED_ONLY_UNDERWATER                = 0x58, // Can only use while swimming
    SPELL_FAILED_OUT_OF_RANGE                   = 0x59, // Out of range
    SPELL_FAILED_PACIFIED                       = 0x5A, // Can't use that ability while pacified
    SPELL_FAILED_POSSESSED                      = 0x5B, // You are possessed
  //SPELL_FAILED_REAGENTS                       = 0x5C, // Missing reagent: %s
    SPELL_FAILED_REQUIRES_AREA                  = 0x5D, // You need to be in %s
    SPELL_FAILED_REQUIRES_SPELL_FOCUS           = 0x5E, // Requires %s
    SPELL_FAILED_ROOTED                         = 0x5F, // You are unable to move
    SPELL_FAILED_SILENCED                       = 0x60, // Can't do that while silenced
    SPELL_FAILED_SPELL_IN_PROGRESS              = 0x61, // Another action is in progress
    SPELL_FAILED_SPELL_LEARNED                  = 0x62, // You have already learned the spell
    SPELL_FAILED_SPELL_UNAVAILABLE              = 0x63, // The spell is not available to you
    SPELL_FAILED_STUNNED                        = 0x64, // Can't do that while stunned
    SPELL_FAILED_TARGETS_DEAD                   = 0x65, // Your target is dead
    SPELL_FAILED_TARGET_AFFECTING_COMBAT        = 0x66, // Target is in combat
    SPELL_FAILED_TARGET_AURASTATE               = 0x67, // You can't do that yet
    SPELL_FAILED_TARGET_DUELING                 = 0x68, // Target is currently dueling
    SPELL_FAILED_TARGET_ENEMY                   = 0x69, // Target is hostile
    SPELL_FAILED_TARGET_ENRAGED                 = 0x6A, // Target is too enraged to be charmed
    SPELL_FAILED_TARGET_FRIENDLY                = 0x6B, // Target is friendly
    SPELL_FAILED_TARGET_IN_COMBAT               = 0x6C, // The target can't be in combat
    SPELL_FAILED_TARGET_IS_PLAYER               = 0x6D, // Can't target players
    SPELL_FAILED_TARGET_NOT_DEAD                = 0x6E, // Target is alive
    SPELL_FAILED_TARGET_NOT_IN_PARTY            = 0x6F, // Target is not in your party
    SPELL_FAILED_TARGET_NOT_LOOTED              = 0x70, // Creature must be looted first
    SPELL_FAILED_TARGET_NOT_PLAYER              = 0x71, // Target is not a player
    SPELL_FAILED_TARGET_NO_POCKETS              = 0x72, // No pockets to pick
    SPELL_FAILED_TARGET_NO_WEAPONS              = 0x73, // Target has no weapons equipped
    SPELL_FAILED_TARGET_UNSKINNABLE             = 0x74, // Creature is not skinnable
    SPELL_FAILED_THIRST_SATIATED                = 0x75,
    SPELL_FAILED_TOO_CLOSE                      = 0x76, // Target too close
    SPELL_FAILED_TOO_MANY_OF_ITEM               = 0x77, // You have too many of that item already
  //SPELL_FAILED_TOTEMS                         = 0x78, // Requires %s
    SPELL_FAILED_TRAINING_POINTS                = 0x79, // Not enough training points
    SPELL_FAILED_TRY_AGAIN                      = 0x7A, // Failed attempt
    SPELL_FAILED_UNIT_NOT_BEHIND                = 0x7B, // Target needs to be behind you
    SPELL_FAILED_UNIT_NOT_INFRONT               = 0x7C, // Target needs to be in front of you
    SPELL_FAILED_WRONG_PET_FOOD                 = 0x7D, // Your pet doesn't like that food
    SPELL_FAILED_NOT_WHILE_FATIGUED             = 0x7E, // Can't cast while fatigued
    SPELL_FAILED_TARGET_NOT_IN_INSTANCE         = 0x7F, // Target must be in this instance
    SPELL_FAILED_NOT_WHILE_TRADING              = 0x80, // Can't cast while trading
    SPELL_FAILED_TARGET_NOT_IN_RAID             = 0x81, // Target is not in your party or raid group
    SPELL_FAILED_DISENCHANT_WHILE_LOOTING       = 0x82, // Cannot disenchant while looting
    SPELL_FAILED_PROSPECT_WHILE_LOOTING         = 0x83, // Cannot prospect while looting
  //SPELL_FAILED_PROSPECT_NEED_MORE             = 0x84, // Requires %d %s
    SPELL_FAILED_TARGET_FREEFORALL              = 0x85, // Target is currently in free-for-all PvP combat
    SPELL_FAILED_NO_EDIBLE_CORPSES              = 0x86, // There are no nearby corpses to eat
    SPELL_FAILED_ONLY_BATTLEGROUNDS             = 0x87, // Can only use in battlegrounds
    SPELL_FAILED_TARGET_NOT_GHOST               = 0x88, // Target is not a ghost
    SPELL_FAILED_TOO_MANY_SKILLS                = 0x89, // Your pet can't learn any more skills
    SPELL_FAILED_TRANSFORM_UNUSABLE             = 0x8A, // You can't use the new item
    SPELL_FAILED_WRONG_WEATHER                  = 0x8B, // The weather isn't right for that
    SPELL_FAILED_DAMAGE_IMMUNE                  = 0x8C, // You can't do that while you are immune
    SPELL_FAILED_PREVENTED_BY_MECHANIC          = 0x8D, // Can't do that while %s
    SPELL_FAILED_PLAY_TIME                      = 0x8E, // Maximum play time exceeded
    SPELL_FAILED_REPUTATION                     = 0x8F, // Your reputation isn't high enough
    SPELL_FAILED_MIN_SKILL                      = 0x90, // Your skill is not high enough. Requires %s(%d).
    SPELL_FAILED_UNKNOWN                        = 0xA8, // Unknown reason
#elif VERSION_STRING == TBC
    SPELL_FAILED_AFFECTING_COMBAT               = 0x00, // You are in combat
    SPELL_FAILED_ALREADY_AT_FULL_HEALTH         = 0x01, // You are already at full Health
    SPELL_FAILED_ALREADY_AT_FULL_MANA           = 0x02, // You are already at full Mana
    SPELL_FAILED_ALREADY_AT_FULL_POWER          = 0x03, // You are already at full Rage (tested on warrior)
    SPELL_FAILED_ALREADY_BEING_TAMED            = 0x04, // That creature is already being tamed
    SPELL_FAILED_ALREADY_HAVE_CHARM             = 0x05, // You already control a charmed creature
    SPELL_FAILED_ALREADY_HAVE_SUMMON            = 0x06, // You already control a summoned creature
    SPELL_FAILED_ALREADY_OPEN                   = 0x07, // Already open
    SPELL_FAILED_AURA_BOUNCED                   = 0x08, // A more powerful spell is already active
    SPELL_FAILED_AUTOTRACK_INTERRUPTED          = 0x09,
    SPELL_FAILED_BAD_IMPLICIT_TARGETS           = 0x0A, // You have no target
    SPELL_FAILED_BAD_TARGETS                    = 0x0B, // Invalid target
    SPELL_FAILED_CANT_BE_CHARMED                = 0x0C, // Target can't be charmed
    SPELL_FAILED_CANT_BE_DISENCHANTED           = 0x0D, // Item cannot be disenchanted
    SPELL_FAILED_CANT_BE_DISENCHANTED_SKILL     = 0x0E, // Your enchanting skill is not high enough to disenchant that
    SPELL_FAILED_CANT_BE_PROSPECTED             = 0x0F, // There are no gems in this
    SPELL_FAILED_CANT_CAST_ON_TAPPED            = 0x10, // Target is tapped
    SPELL_FAILED_CANT_DUEL_WHILE_INVISIBLE      = 0x11, // You can't start a duel while invisible
    SPELL_FAILED_CANT_DUEL_WHILE_STEALTHED      = 0x12, // You can't start a duel while stealthed
    SPELL_FAILED_CANT_STEALTH                   = 0x13, // You are too close to enemies
    SPELL_FAILED_CASTER_AURASTATE               = 0x14, // You can't do that yet
    SPELL_FAILED_CASTER_DEAD                    = 0x15, // You are dead
    SPELL_FAILED_CHARMED                        = 0x16, // Can't do that while charmed
    SPELL_FAILED_CHEST_IN_USE                   = 0x17, // That is already being used
    SPELL_FAILED_CONFUSED                       = 0x18, // Can't do that while confused
    SPELL_FAILED_DONT_REPORT                    = 0x19,
    SPELL_FAILED_EQUIPPED_ITEM                  = 0x1A, // Must have the proper item equipped
    SPELL_FAILED_EQUIPPED_ITEM_CLASS            = 0x1B, // Must have a %s equipped
    SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND   = 0x1C, // Must have a %s equipped in the main hand
    SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND    = 0x1D, // Must have a %s equipped in the offhand
    SPELL_FAILED_ERROR                          = 0x1E, // Internal error
    SPELL_FAILED_FIZZLE                         = 0x1F, // Fizzled
    SPELL_FAILED_FLEEING                        = 0x20, // Can't do that while fleeing
    SPELL_FAILED_FOOD_LOWLEVEL                  = 0x21, // That food's level is not high enough for your pet
    SPELL_FAILED_HIGHLEVEL                      = 0x22, // Target is too high level
    SPELL_FAILED_HUNGER_SATIATED                = 0x23,
    SPELL_FAILED_IMMUNE                         = 0x24, // Immune
    SPELL_FAILED_INTERRUPTED                    = 0x25, // Interrupted
    SPELL_FAILED_INTERRUPTED_COMBAT             = 0x26, // Interrupted
    SPELL_FAILED_ITEM_ALREADY_ENCHANTED         = 0x27, // Item is already enchanted
    SPELL_FAILED_ITEM_GONE                      = 0x28, // Item is gone
    SPELL_FAILED_ITEM_NOT_FOUND                 = 0x29, // Tried to enchant an item that didn't exist
    SPELL_FAILED_ITEM_NOT_READY                 = 0x2A, // Item is not ready yet
    SPELL_FAILED_LEVEL_REQUIREMENT              = 0x2B, // You are not high enough level
    SPELL_FAILED_LINE_OF_SIGHT                  = 0x2C, // Target not in line of sight
    SPELL_FAILED_LOWLEVEL                       = 0x2D, // Target is too low level
    SPELL_FAILED_LOW_CASTLEVEL                  = 0x2E, // Skill not high enough
    SPELL_FAILED_MAINHAND_EMPTY                 = 0x2F, // Your weapon hand is empty
    SPELL_FAILED_MOVING                         = 0x30, // Can't do that while moving
    SPELL_FAILED_NEED_AMMO                      = 0x31, // Ammo needs to be in the paper doll ammo slot before it can be fired
    SPELL_FAILED_NEED_AMMO_POUCH                = 0x32, // Requires: %s
    SPELL_FAILED_NEED_EXOTIC_AMMO               = 0x33, // Requires exotic ammo: %s
    SPELL_FAILED_NOPATH                         = 0x34, // No path available
    SPELL_FAILED_NOT_BEHIND                     = 0x35, // You must be behind your target
    SPELL_FAILED_NOT_FISHABLE                   = 0x36, // Your cast didn't land in fishable water
    SPELL_FAILED_NOT_FLYING                     = 0x37, // You are flying
    SPELL_FAILED_NOT_HERE                       = 0x38, // You can't use that here
    SPELL_FAILED_NOT_INFRONT                    = 0x39, // You must be in front of your target
    SPELL_FAILED_NOT_IN_CONTROL                 = 0x3A, // You are not in control of your actions
    SPELL_FAILED_NOT_KNOWN                      = 0x3B, // Spell not learned
    SPELL_FAILED_NOT_MOUNTED                    = 0x3C, // You are mounted
    SPELL_FAILED_NOT_ON_TAXI                    = 0x3D, // You are in flight
    SPELL_FAILED_NOT_ON_TRANSPORT               = 0x3E, // You are on a transport
    SPELL_FAILED_NOT_READY                      = 0x3F, // Spell is not ready yet
    SPELL_FAILED_NOT_SHAPESHIFT                 = 0x40, // You are in shapeshift form
    SPELL_FAILED_NOT_STANDING                   = 0x41, // You must be standing to do that
    SPELL_FAILED_NOT_TRADEABLE                  = 0x42, // You can only use this on an object you own
    SPELL_FAILED_NOT_TRADING                    = 0x43, // Tried to enchant a trade item, but not trading
    SPELL_FAILED_NOT_UNSHEATHED                 = 0x44, // You have to be unsheathed to do that! (with yellow color)
    SPELL_FAILED_NOT_WHILE_GHOST                = 0x45, // Can't cast as ghost
    SPELL_FAILED_NO_AMMO                        = 0x46, // Out of ammo
    SPELL_FAILED_NO_CHARGES_REMAIN              = 0x47, // No charges remain
    SPELL_FAILED_NO_CHAMPION                    = 0x48, // You haven't selected a champion
    SPELL_FAILED_NO_COMBO_POINTS                = 0x49, // That ability requires combo points
    SPELL_FAILED_NO_DUELING                     = 0x4A, // Dueling isn't allowed here
    SPELL_FAILED_NO_ENDURANCE                   = 0x4B, // Not enough endurance
    SPELL_FAILED_NO_FISH                        = 0x4C, // There aren't any fish here
    SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED    = 0x4D, // Can't use items while shapeshifted
    SPELL_FAILED_NO_MOUNTS_ALLOWED              = 0x4E, // You can't mount here
    SPELL_FAILED_NO_PET                         = 0x4F, // You do not have a pet
    SPELL_FAILED_NO_POWER                       = 0x50, // Not enough mana (tested on warrior)
    SPELL_FAILED_NOTHING_TO_DISPEL              = 0x51, // Nothing to dispel
    SPELL_FAILED_NOTHING_TO_STEAL               = 0x52, // Nothing to steal
    SPELL_FAILED_ONLY_ABOVEWATER                = 0x53, // Cannot use while swimming
    SPELL_FAILED_ONLY_DAYTIME                   = 0x54, // Can only use during the day
    SPELL_FAILED_ONLY_INDOORS                   = 0x55, // Can only use indoors
    SPELL_FAILED_ONLY_MOUNTED                   = 0x56, // Can only use while mounted
    SPELL_FAILED_ONLY_NIGHTTIME                 = 0x57, // Can only use during the night
    SPELL_FAILED_ONLY_OUTDOORS                  = 0x58, // Can only use outside
    SPELL_FAILED_ONLY_SHAPESHIFT                = 0x59, // Must be in %s
    SPELL_FAILED_ONLY_STEALTHED                 = 0x5A, // You must be in stealth mode
    SPELL_FAILED_ONLY_UNDERWATER                = 0x5B, // Can only use while swimming
    SPELL_FAILED_OUT_OF_RANGE                   = 0x5C, // Out of range
    SPELL_FAILED_PACIFIED                       = 0x5D, // Can't use that ability while pacified
    SPELL_FAILED_POSSESSED                      = 0x5E, // You are possessed
    SPELL_FAILED_REAGENTS                       = 0x5F, // Missing reagent: %s
    SPELL_FAILED_REQUIRES_AREA                  = 0x60, // You need to be in %s
    SPELL_FAILED_REQUIRES_SPELL_FOCUS           = 0x61, // Requires %s
    SPELL_FAILED_ROOTED                         = 0x62, // You are unable to move
    SPELL_FAILED_SILENCED                       = 0x63, // Can't do that while silenced
    SPELL_FAILED_SPELL_IN_PROGRESS              = 0x64, // Another action is in progress
    SPELL_FAILED_SPELL_LEARNED                  = 0x65, // You have already learned the spell
    SPELL_FAILED_SPELL_UNAVAILABLE              = 0x66, // The spell is not available to you
    SPELL_FAILED_STUNNED                        = 0x67, // Can't do that while stunned
    SPELL_FAILED_TARGETS_DEAD                   = 0x68, // Your target is dead
    SPELL_FAILED_TARGET_AFFECTING_COMBAT        = 0x69, // Target is in combat
    SPELL_FAILED_TARGET_AURASTATE               = 0x6A, // You can't do that yet
    SPELL_FAILED_TARGET_DUELING                 = 0x6B, // Target is currently dueling
    SPELL_FAILED_TARGET_ENEMY                   = 0x6C, // Target is hostile
    SPELL_FAILED_TARGET_ENRAGED                 = 0x6D, // Target is too enraged to be charmed
    SPELL_FAILED_TARGET_FRIENDLY                = 0x6E, // Target is friendly
    SPELL_FAILED_TARGET_IN_COMBAT               = 0x6F, // The target can't be in combat
    SPELL_FAILED_TARGET_IS_PLAYER               = 0x70, // Can't target players
    SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED    = 0x71, // Can't target player controlled units
    SPELL_FAILED_TARGET_NOT_DEAD                = 0x72, // Target is alive
    SPELL_FAILED_TARGET_NOT_IN_PARTY            = 0x73, // Target is not in your party
    SPELL_FAILED_TARGET_NOT_LOOTED              = 0x74, // Creature must be looted first
    SPELL_FAILED_TARGET_NOT_PLAYER              = 0x75, // Target is not a player
    SPELL_FAILED_TARGET_NO_POCKETS              = 0x76, // No pockets to pick
    SPELL_FAILED_TARGET_NO_WEAPONS              = 0x77, // Target has no weapons equipped
    SPELL_FAILED_TARGET_UNSKINNABLE             = 0x78, // Creature is not skinnable
    SPELL_FAILED_THIRST_SATIATED                = 0x79,
    SPELL_FAILED_TOO_CLOSE                      = 0x7A, // Target too close
    SPELL_FAILED_TOO_MANY_OF_ITEM               = 0x7B, // You have too many of that item already
    SPELL_FAILED_TOTEM_CATEGORY                 = 0x7C, // Requires %s
    SPELL_FAILED_TOTEMS                         = 0x7D, // Requires %s
    SPELL_FAILED_TRAINING_POINTS                = 0x7E, // Not enough training points
    SPELL_FAILED_TRY_AGAIN                      = 0x7F, // Failed attempt
    SPELL_FAILED_UNIT_NOT_BEHIND                = 0x80, // Target needs to be behind you
    SPELL_FAILED_UNIT_NOT_INFRONT               = 0x81, // Target needs to be in front of you
    SPELL_FAILED_WRONG_PET_FOOD                 = 0x82, // Your pet doesn't like that food
    SPELL_FAILED_NOT_WHILE_FATIGUED             = 0x83, // Can't cast while fatigued
    SPELL_FAILED_TARGET_NOT_IN_INSTANCE         = 0x84, // Target must be in this instance
    SPELL_FAILED_NOT_WHILE_TRADING              = 0x85, // Can't cast while trading
    SPELL_FAILED_TARGET_NOT_IN_RAID             = 0x86, // Target is not in your party or raid group
    SPELL_FAILED_DISENCHANT_WHILE_LOOTING       = 0x87, // Cannot disenchant while looting
    SPELL_FAILED_PROSPECT_WHILE_LOOTING         = 0x88, // Cannot prospect while looting
    SPELL_FAILED_PROSPECT_NEED_MORE             = 0x89, // Requires %d %s
    SPELL_FAILED_TARGET_FREEFORALL              = 0x8A, // Target is currently in free-for-all PvP combat
    SPELL_FAILED_NO_EDIBLE_CORPSES              = 0x8B, // There are no nearby corpses to eat
    SPELL_FAILED_ONLY_BATTLEGROUNDS             = 0x8C, // Can only use in battlegrounds
    SPELL_FAILED_TARGET_NOT_GHOST               = 0x8D, // Target is not a ghost
    SPELL_FAILED_TOO_MANY_SKILLS                = 0x8E, // Your pet can't learn any more skills
    SPELL_FAILED_TRANSFORM_UNUSABLE             = 0x8F, // You can't use the new item
    SPELL_FAILED_WRONG_WEATHER                  = 0x90, // The weather isn't right for that
    SPELL_FAILED_DAMAGE_IMMUNE                  = 0x91, // You can't do that while you are immune
    SPELL_FAILED_PREVENTED_BY_MECHANIC          = 0x92, // Can't do that while %s
    SPELL_FAILED_PLAY_TIME                      = 0x93, // Maximum play time exceeded
    SPELL_FAILED_REPUTATION                     = 0x94, // Your reputation isn't high enough
    SPELL_FAILED_MIN_SKILL                      = 0x95, // Your skill is not high enough. Requires %s(%d).
    SPELL_FAILED_NOT_IN_ARENA                   = 0x96, // You can't do that in an arena
    SPELL_FAILED_NOT_ON_SHAPESHIFT              = 0x97, // Cannot be cast on shapeshifted target
    SPELL_FAILED_NOT_ON_STEALTHED               = 0x98, // Spell cannot be cast on stealthed target
    SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE           = 0x99, // Spell cannot be cast on a damage immune target
    SPELL_FAILED_NOT_ON_MOUNTED                 = 0x9A, // Spell cannot be cast on a mounted unit
    SPELL_FAILED_TOO_SHALLOW                    = 0x9B, // Water too shallow
    SPELL_FAILED_TARGET_NOT_IN_SANCTUARY        = 0x9C, // Target is not in a sanctuary
    SPELL_FAILED_TARGET_IS_TRIVIAL              = 0x9D, // Can't target trivial
    SPELL_FAILED_BM_OR_INVISGOD                 = 0x9E, // The spell cannot be cast on beastmaster or invis god targets
    SPELL_FAILED_EXPERT_RIDING_REQUIREMENT      = 0x9F, // Requires expert riding skill
    SPELL_FAILED_ARTISAN_RIDING_REQUIREMENT     = 0xA0, // Requires artisan riding skill
    SPELL_FAILED_NOT_IDLE                       = 0xA1, // Can't use while Idle
    SPELL_FAILED_NOT_INACTIVE                   = 0xA2, // Can't use while Inactive
    SPELL_FAILED_PARTIAL_PLAYTIME               = 0xA3, // You can not do this. You have more than 3 hours of online time
    SPELL_FAILED_NO_PLAYTIME                    = 0xA4, // You can not do this. You have more than 5 hours of online time
    SPELL_FAILED_NOT_IN_BATTLEGROUND            = 0xA5, // You can't do that in a battleground
    SPELL_FAILED_ONLY_IN_ARENA                  = 0xA6, // You can only do that in an arena
    SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE = 0xA7, // Target is locked to another raid instance
    SPELL_FAILED_UNKNOWN                        = 0xA8, // Unknown reason
#elif VERSION_STRING == WotLK
    // Values are tested on 3.3.5a client
    // Values without comments didn't return anything
    SPELL_FAILED_SUCCESS                        = 0x00,
    SPELL_FAILED_AFFECTING_COMBAT               = 0x01, // You are in combat
    SPELL_FAILED_ALREADY_AT_FULL_HEALTH         = 0x02, // You are already at full Health
    SPELL_FAILED_ALREADY_AT_FULL_MANA           = 0x03, // You are already at full Mana
    SPELL_FAILED_ALREADY_AT_FULL_POWER          = 0x04, // You are already at full Rage (tested on warrior)
    SPELL_FAILED_ALREADY_BEING_TAMED            = 0x05, // That creature is already being tamed
    SPELL_FAILED_ALREADY_HAVE_CHARM             = 0x06, // You already control a charmed creature
    SPELL_FAILED_ALREADY_HAVE_SUMMON            = 0x07, // You already control a summoned creature
    SPELL_FAILED_ALREADY_OPEN                   = 0x08, // Already open
    SPELL_FAILED_AURA_BOUNCED                   = 0x09, // A more powerful spell is already active
    SPELL_FAILED_AUTOTRACK_INTERRUPTED          = 0x0A,
    SPELL_FAILED_BAD_IMPLICIT_TARGETS           = 0x0B, // You have no target
    SPELL_FAILED_BAD_TARGETS                    = 0x0C, // Invalid target
    SPELL_FAILED_CANT_BE_CHARMED                = 0x0D, // Target can't be charmed
    SPELL_FAILED_CANT_BE_DISENCHANTED           = 0x0E, // Item cannot be disenchanted
    SPELL_FAILED_CANT_BE_DISENCHANTED_SKILL     = 0x0F, // Your enchanting skill is not high enough to disenchant that
    SPELL_FAILED_CANT_BE_MILLED                 = 0x10, // You cannot mill that
    SPELL_FAILED_CANT_BE_PROSPECTED             = 0x11, // There are no gems in this
    SPELL_FAILED_CANT_CAST_ON_TAPPED            = 0x12, // Target is tapped
    SPELL_FAILED_CANT_DUEL_WHILE_INVISIBLE      = 0x13, // You can't start a duel while invisible
    SPELL_FAILED_CANT_DUEL_WHILE_STEALTHED      = 0x14, // You can't start a duel while stealthed
    SPELL_FAILED_CANT_STEALTH                   = 0x15, // You are too close to enemies
    SPELL_FAILED_CASTER_AURASTATE               = 0x16, // You can't do that yet
    SPELL_FAILED_CASTER_DEAD                    = 0x17, // You are dead
    SPELL_FAILED_CHARMED                        = 0x18, // Can't do that while charmed
    SPELL_FAILED_CHEST_IN_USE                   = 0x19, // That is already being used
    SPELL_FAILED_CONFUSED                       = 0x1A, // Can't do that while confused
    SPELL_FAILED_DONT_REPORT                    = 0x1B,
    SPELL_FAILED_EQUIPPED_ITEM                  = 0x1C, // Must have the proper item equipped
    SPELL_FAILED_EQUIPPED_ITEM_CLASS            = 0x1D, // Must have a %s equipped
    SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND   = 0x1E, // Must have a %s equipped in the main hand
    SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND    = 0x1F, // Must have a %s equipped in the offhand
    SPELL_FAILED_ERROR                          = 0x20, // Internal error
    SPELL_FAILED_FIZZLE                         = 0x21, // Fizzled
    SPELL_FAILED_FLEEING                        = 0x22, // Can't do that while fleeing
    SPELL_FAILED_FOOD_LOWLEVEL                  = 0x23, // That food's level is not high enough for your pet
    SPELL_FAILED_HIGHLEVEL                      = 0x24, // Target is too high level
    SPELL_FAILED_HUNGER_SATIATED                = 0x25,
    SPELL_FAILED_IMMUNE                         = 0x26, // Immune
    SPELL_FAILED_INCORRECT_AREA                 = 0x27, // You are in the wrong zone
    SPELL_FAILED_INTERRUPTED                    = 0x28, // Interrupted
    SPELL_FAILED_INTERRUPTED_COMBAT             = 0x29, // Interrupted
    SPELL_FAILED_ITEM_ALREADY_ENCHANTED         = 0x2A, // Item is already enchanted
    SPELL_FAILED_ITEM_GONE                      = 0x2B, // Item is gone
    SPELL_FAILED_ITEM_NOT_FOUND                 = 0x2C, // Tried to enchant an item that didn't exist
    SPELL_FAILED_ITEM_NOT_READY                 = 0x2D, // Item is not ready yet
    SPELL_FAILED_LEVEL_REQUIREMENT              = 0x2E, // You are not high enough level
    SPELL_FAILED_LINE_OF_SIGHT                  = 0x2F, // Target not in line of sight
    SPELL_FAILED_LOWLEVEL                       = 0x30, // Target is too low level
    SPELL_FAILED_LOW_CASTLEVEL                  = 0x31, // Skill not high enough
    SPELL_FAILED_MAINHAND_EMPTY                 = 0x32, // Your weapon hand is empty
    SPELL_FAILED_MOVING                         = 0x33, // Can't do that while moving
    SPELL_FAILED_NEED_AMMO                      = 0x34, // Ammo needs to be in the paper doll ammo slot before it can be fired
    SPELL_FAILED_NEED_AMMO_POUCH                = 0x35, // Requires: %s
    SPELL_FAILED_NEED_EXOTIC_AMMO               = 0x36, // Requires exotic ammo: %s
    SPELL_FAILED_NEED_MORE_ITEMS                = 0x37, // Requires %d %s
    SPELL_FAILED_NOPATH                         = 0x38, // No path available
    SPELL_FAILED_NOT_BEHIND                     = 0x39, // You must be behind your target
    SPELL_FAILED_NOT_FISHABLE                   = 0x3A, // Your cast didn't land in fishable water
    SPELL_FAILED_NOT_FLYING                     = 0x3B, // You are flying
    SPELL_FAILED_NOT_HERE                       = 0x3C, // You can't use that here
    SPELL_FAILED_NOT_INFRONT                    = 0x3D, // You must be in front of your target
    SPELL_FAILED_NOT_IN_CONTROL                 = 0x3E, // You are not in control of your actions
    SPELL_FAILED_NOT_KNOWN                      = 0x3F, // Spell not learned
    SPELL_FAILED_NOT_MOUNTED                    = 0x40, // You are mounted
    SPELL_FAILED_NOT_ON_TAXI                    = 0x41, // You are in flight
    SPELL_FAILED_NOT_ON_TRANSPORT               = 0x42, // You are on a transport
    SPELL_FAILED_NOT_READY                      = 0x43, // Spell is not ready yet
    SPELL_FAILED_NOT_SHAPESHIFT                 = 0x44, // You are in shapeshift form
    SPELL_FAILED_NOT_STANDING                   = 0x45, // You must be standing to do that
    SPELL_FAILED_NOT_TRADEABLE                  = 0x46, // You can only use this on an object you own
    SPELL_FAILED_NOT_TRADING                    = 0x47, // Tried to enchant a trade item, but not trading
    SPELL_FAILED_NOT_UNSHEATHED                 = 0x48, // You have to be unsheathed to do that! (with yellow color)
    SPELL_FAILED_NOT_WHILE_GHOST                = 0x49, // Can't cast as ghost
    SPELL_FAILED_NOT_WHILE_LOOTING              = 0x4A, // You are busy looting
    SPELL_FAILED_NO_AMMO                        = 0x4B, // Out of ammo
    SPELL_FAILED_NO_CHARGES_REMAIN              = 0x4C, // No charges remain
    SPELL_FAILED_NO_CHAMPION                    = 0x4D, // You haven't selected a champion
    SPELL_FAILED_NO_COMBO_POINTS                = 0x4E, // That ability requires combo points
    SPELL_FAILED_NO_DUELING                     = 0x4F, // Dueling isn't allowed here
    SPELL_FAILED_NO_ENDURANCE                   = 0x50, // Not enough endurance
    SPELL_FAILED_NO_FISH                        = 0x51, // There aren't any fish here
    SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED    = 0x52, // Can't use items while shapeshifted
    SPELL_FAILED_NO_MOUNTS_ALLOWED              = 0x53, // You can't mount here
    SPELL_FAILED_NO_PET                         = 0x54, // You do not have a pet
    SPELL_FAILED_NO_POWER                       = 0x55, // Not enough mana (tested on warrior)
    SPELL_FAILED_NOTHING_TO_DISPEL              = 0x56, // Nothing to dispel
    SPELL_FAILED_NOTHING_TO_STEAL               = 0x57, // Nothing to steal
    SPELL_FAILED_ONLY_ABOVEWATER                = 0x58, // Cannot use while swimming
    SPELL_FAILED_ONLY_DAYTIME                   = 0x59, // Can only use during the day
    SPELL_FAILED_ONLY_INDOORS                   = 0x5A, // Can only use indoors
    SPELL_FAILED_ONLY_MOUNTED                   = 0x5B, // Can only use while mounted
    SPELL_FAILED_ONLY_NIGHTTIME                 = 0x5C, // Can only use during the night
    SPELL_FAILED_ONLY_OUTDOORS                  = 0x5D, // Can only use outside
    SPELL_FAILED_ONLY_SHAPESHIFT                = 0x5E, // Must be in %s
    SPELL_FAILED_ONLY_STEALTHED                 = 0x5F, // You must be in stealth mode
    SPELL_FAILED_ONLY_UNDERWATER                = 0x60, // Can only use while swimming
    SPELL_FAILED_OUT_OF_RANGE                   = 0x61, // Out of range
    SPELL_FAILED_PACIFIED                       = 0x62, // Can't use that ability while pacified
    SPELL_FAILED_POSSESSED                      = 0x63, // You are possessed
    SPELL_FAILED_REAGENTS                       = 0x64, // Missing reagent: %s
    SPELL_FAILED_REQUIRES_AREA                  = 0x65, // You need to be in %s
    SPELL_FAILED_REQUIRES_SPELL_FOCUS           = 0x66, // Requires %s
    SPELL_FAILED_ROOTED                         = 0x67, // You are unable to move
    SPELL_FAILED_SILENCED                       = 0x68, // Can't do that while silenced
    SPELL_FAILED_SPELL_IN_PROGRESS              = 0x69, // Another action is in progress
    SPELL_FAILED_SPELL_LEARNED                  = 0x6A, // You have already learned the spell
    SPELL_FAILED_SPELL_UNAVAILABLE              = 0x6B, // The spell is not available to you
    SPELL_FAILED_STUNNED                        = 0x6C, // Can't do that while stunned
    SPELL_FAILED_TARGETS_DEAD                   = 0x6D, // Your target is dead
    SPELL_FAILED_TARGET_AFFECTING_COMBAT        = 0x6E, // Target is in combat
    SPELL_FAILED_TARGET_AURASTATE               = 0x6F, // You can't do that yet
    SPELL_FAILED_TARGET_DUELING                 = 0x70, // Target is currently dueling
    SPELL_FAILED_TARGET_ENEMY                   = 0x71, // Target is hostile
    SPELL_FAILED_TARGET_ENRAGED                 = 0x72, // Target is too enraged to be charmed
    SPELL_FAILED_TARGET_FRIENDLY                = 0x73, // Target is friendly
    SPELL_FAILED_TARGET_IN_COMBAT               = 0x74, // The target can't be in combat
    SPELL_FAILED_TARGET_IS_PLAYER               = 0x75, // Can't target players
    SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED    = 0x76, // Can't target player controlled units
    SPELL_FAILED_TARGET_NOT_DEAD                = 0x77, // Target is alive
    SPELL_FAILED_TARGET_NOT_IN_PARTY            = 0x78, // Target is not in your party
    SPELL_FAILED_TARGET_NOT_LOOTED              = 0x79, // Creature must be looted first
    SPELL_FAILED_TARGET_NOT_PLAYER              = 0x7A, // Target is not a player
    SPELL_FAILED_TARGET_NO_POCKETS              = 0x7B, // No pockets to pick
    SPELL_FAILED_TARGET_NO_WEAPONS              = 0x7C, // Target has no weapons equipped
    SPELL_FAILED_TARGET_NO_RANGED_WEAPONS       = 0x7D, // Target has no ranged weapons equipped
    SPELL_FAILED_TARGET_UNSKINNABLE             = 0x7E, // Creature is not skinnable
    SPELL_FAILED_THIRST_SATIATED                = 0x7F,
    SPELL_FAILED_TOO_CLOSE                      = 0x80, // Target too close
    SPELL_FAILED_TOO_MANY_OF_ITEM               = 0x81, // You have too many of that item already
    SPELL_FAILED_TOTEM_CATEGORY                 = 0x82, // Requires %s
    SPELL_FAILED_TOTEMS                         = 0x83, // Requires %s
    SPELL_FAILED_TRY_AGAIN                      = 0x84, // Failed attempt
    SPELL_FAILED_UNIT_NOT_BEHIND                = 0x85, // Target needs to be behind you
    SPELL_FAILED_UNIT_NOT_INFRONT               = 0x86, // Target needs to be in front of you
    SPELL_FAILED_WRONG_PET_FOOD                 = 0x87, // Your pet doesn't like that food
    SPELL_FAILED_NOT_WHILE_FATIGUED             = 0x88, // Can't cast while fatigued
    SPELL_FAILED_TARGET_NOT_IN_INSTANCE         = 0x89, // Target must be in this instance
    SPELL_FAILED_NOT_WHILE_TRADING              = 0x8A, // Can't cast while trading
    SPELL_FAILED_TARGET_NOT_IN_RAID             = 0x8B, // Target is not in your party or raid group
    SPELL_FAILED_TARGET_FREEFORALL              = 0x8C, // Target is currently in free-for-all PvP combat
    SPELL_FAILED_NO_EDIBLE_CORPSES              = 0x8D, // There are no nearby corpses to eat
    SPELL_FAILED_ONLY_BATTLEGROUNDS             = 0x8E, // Can only use in battlegrounds
    SPELL_FAILED_TARGET_NOT_GHOST               = 0x8F, // Target is not a ghost
    SPELL_FAILED_TRANSFORM_UNUSABLE             = 0x90, // You can't use the new item
    SPELL_FAILED_WRONG_WEATHER                  = 0x91, // The weather isn't right for that
    SPELL_FAILED_DAMAGE_IMMUNE                  = 0x92, // You can't do that while you are immune
    SPELL_FAILED_PREVENTED_BY_MECHANIC          = 0x93, // Can't do that while %s
    SPELL_FAILED_PLAY_TIME                      = 0x94, // Maximum play time exceeded
    SPELL_FAILED_REPUTATION                     = 0x95, // Your reputation isn't high enough
    SPELL_FAILED_MIN_SKILL                      = 0x96, // Your skill is not high enough. Requires %s(%d).
    SPELL_FAILED_NOT_IN_ARENA                   = 0x97, // You can't do that in an arena
    SPELL_FAILED_NOT_ON_SHAPESHIFT              = 0x98, // Cannot be cast on shapeshifted target
    SPELL_FAILED_NOT_ON_STEALTHED               = 0x99, // Spell cannot be cast on stealthed target
    SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE           = 0x9A, // Spell cannot be cast on a damage immune target
    SPELL_FAILED_NOT_ON_MOUNTED                 = 0x9B, // Spell cannot be cast on a mounted unit
    SPELL_FAILED_TOO_SHALLOW                    = 0x9C, // Water too shallow
    SPELL_FAILED_TARGET_NOT_IN_SANCTUARY        = 0x9D, // Target is not in a sanctuary
    SPELL_FAILED_TARGET_IS_TRIVIAL              = 0x9E, // Can't target trivial
    SPELL_FAILED_BM_OR_INVISGOD                 = 0x9F, // The spell cannot be cast on beastmaster or invis god targets
    SPELL_FAILED_EXPERT_RIDING_REQUIREMENT      = 0xA0, // Requires expert riding skill
    SPELL_FAILED_ARTISAN_RIDING_REQUIREMENT     = 0xA1, // Requires artisan riding skill
    SPELL_FAILED_NOT_IDLE                       = 0xA2, // Can't use while Idle
    SPELL_FAILED_NOT_INACTIVE                   = 0xA3, // Can't use while Inactive
    SPELL_FAILED_PARTIAL_PLAYTIME               = 0xA4, // You can not do this. You have more than 3 hours of online time
    SPELL_FAILED_NO_PLAYTIME                    = 0xA5, // You can not do this. You have more than 5 hours of online time
    SPELL_FAILED_NOT_IN_BATTLEGROUND            = 0xA6, // You can't do that in a battleground
    SPELL_FAILED_NOT_IN_RAID_INSTANCE           = 0xA7, // You can't do that in a raid instance
    SPELL_FAILED_ONLY_IN_ARENA                  = 0xA8, // You can only do that in an arena
    SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE = 0xA9, // Target is locked to another raid instance
    SPELL_FAILED_ON_USE_ENCHANT                 = 0xAA, // That item already has an activated ability
    SPELL_FAILED_NOT_ON_GROUND                  = 0xAB, // Cannot use on the ground
    SPELL_FAILED_CUSTOM_ERROR                   = 0xAC,
    SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW         = 0xAD, // You can't do that right now
    SPELL_FAILED_TOO_MANY_SOCKETS               = 0xAE, // That item has too many sockets
    SPELL_FAILED_INVALID_GLYPH                  = 0xAF, // That glyph cannot be inscribed there
    SPELL_FAILED_UNIQUE_GLYPH                   = 0xB0, // That glyph is already inscribed in your spellbook
    SPELL_FAILED_GLYPH_SOCKET_LOCKED            = 0xB1, // You cannot inscribe a glyph there yet
    SPELL_FAILED_NO_VALID_TARGETS               = 0xB2, // No valid targets
    SPELL_FAILED_ITEM_AT_MAX_CHARGES            = 0xB3, // Item already has the maximum number of charges
    SPELL_FAILED_NOT_IN_BARBERSHOP              = 0xB4, // You can't do that while in the barber shop
    SPELL_FAILED_FISHING_TOO_LOW                = 0xB5, // Requires fishing %d
    SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW      = 0xB6, // Item cannot be enchanted in trade
    SPELL_FAILED_SUMMON_PENDING                 = 0xB7, // A summon is already pending
    SPELL_FAILED_MAX_SOCKETS                    = 0xB8, // That item cannot receive additional sockets
    SPELL_FAILED_PET_CAN_RENAME                 = 0xB9, // You can already rename your pet
    SPELL_FAILED_TARGET_CANNOT_BE_RESURRECTED   = 0xBA, // Target cannot be resurrected
    SPELL_FAILED_UNKNOWN                        = 0xBB, // Unknown reason
#elif VERSION_STRING == Cata
    // Values are tested on 4.3.4 client
    // Values without comments didn't return anything
    SPELL_FAILED_SUCCESS                        = 0x00,
    SPELL_FAILED_AFFECTING_COMBAT               = 0x01, // You are in combat
    SPELL_FAILED_ALREADY_AT_FULL_HEALTH         = 0x02, // You are already at full Health
    SPELL_FAILED_ALREADY_AT_FULL_MANA           = 0x03, // You are already at full Mana
    SPELL_FAILED_ALREADY_AT_FULL_POWER          = 0x04, // You are already at full Rage (tested on warrior)
    SPELL_FAILED_ALREADY_BEING_TAMED            = 0x05, // That creature is already being tamed
    SPELL_FAILED_ALREADY_HAVE_CHARM             = 0x06, // You already control a charmed creature
    SPELL_FAILED_ALREADY_HAVE_SUMMON            = 0x07, // You already control a summoned creature
    SPELL_FAILED_ALREADY_HAVE_PET               = 0x08, // You must dismiss your current pet first
    SPELL_FAILED_ALREADY_OPEN                   = 0x09, // Already open
    SPELL_FAILED_AURA_BOUNCED                   = 0x0A, // A more powerful spell is already active
    SPELL_FAILED_AUTOTRACK_INTERRUPTED          = 0x0B,
    SPELL_FAILED_BAD_IMPLICIT_TARGETS           = 0x0C, // You have no target
    SPELL_FAILED_BAD_TARGETS                    = 0x0D, // Invalid target
    SPELL_FAILED_CANT_BE_CHARMED                = 0x0E, // Target can't be charmed
    SPELL_FAILED_CANT_BE_DISENCHANTED           = 0x0F, // Item cannot be disenchanted
    SPELL_FAILED_CANT_BE_DISENCHANTED_SKILL     = 0x10, // Your enchanting skill is not high enough to disenchant that
    SPELL_FAILED_CANT_BE_MILLED                 = 0x11, // You cannot mill that
    SPELL_FAILED_CANT_BE_PROSPECTED             = 0x12, // There are no gems in this
    SPELL_FAILED_CANT_CAST_ON_TAPPED            = 0x13, // Target is tapped
    SPELL_FAILED_CANT_DUEL_WHILE_INVISIBLE      = 0x14, // You can't start a duel while invisible
    SPELL_FAILED_CANT_DUEL_WHILE_STEALTHED      = 0x15, // You can't start a duel while stealthed
    SPELL_FAILED_CANT_STEALTH                   = 0x16, // You are too close to enemies
    SPELL_FAILED_CASTER_AURASTATE               = 0x17, // You can't do that yet
    SPELL_FAILED_CASTER_DEAD                    = 0x18, // You are dead
    SPELL_FAILED_CHARMED                        = 0x19, // Can't do that while charmed
    SPELL_FAILED_CHEST_IN_USE                   = 0x1A, // That is already being used
    SPELL_FAILED_CONFUSED                       = 0x1B, // Can't do that while confused
    SPELL_FAILED_DONT_REPORT                    = 0x1C,
    SPELL_FAILED_EQUIPPED_ITEM                  = 0x1D, // Must have the proper item equipped
    SPELL_FAILED_EQUIPPED_ITEM_CLASS            = 0x1E, // Must have a %s equipped
    SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND   = 0x1F, // Must have a %s equipped in the main hand
    SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND    = 0x20, // Must have a %s equipped in the offhand
    SPELL_FAILED_ERROR                          = 0x21, // Internal error
    SPELL_FAILED_FALLING                        = 0x22, // Can't do that while falling
    SPELL_FAILED_FIZZLE                         = 0x23, // Fizzled
    SPELL_FAILED_FLEEING                        = 0x24, // Can't do that while fleeing
    SPELL_FAILED_FOOD_LOWLEVEL                  = 0x25, // That food's level is not high enough for your pet
    SPELL_FAILED_HIGHLEVEL                      = 0x26, // Target is too high level
    SPELL_FAILED_HUNGER_SATIATED                = 0x27,
    SPELL_FAILED_IMMUNE                         = 0x28, // Immune
    SPELL_FAILED_INCORRECT_AREA                 = 0x29, // You are in the wrong zone
    SPELL_FAILED_INTERRUPTED                    = 0x2A, // Interrupted
    SPELL_FAILED_INTERRUPTED_COMBAT             = 0x2B, // Interrupted
    SPELL_FAILED_ITEM_ALREADY_ENCHANTED         = 0x2C, // Item is already enchanted
    SPELL_FAILED_ITEM_GONE                      = 0x2D, // Item is gone
    SPELL_FAILED_ITEM_NOT_FOUND                 = 0x2E, // Tried to enchant an item that didn't exist
    SPELL_FAILED_ITEM_NOT_READY                 = 0x2F, // Item is not ready yet
    SPELL_FAILED_LEVEL_REQUIREMENT              = 0x30, // You are not high enough level
    SPELL_FAILED_LINE_OF_SIGHT                  = 0x31, // Target not in line of sight
    SPELL_FAILED_LOWLEVEL                       = 0x32, // Target is too low level
    SPELL_FAILED_LOW_CASTLEVEL                  = 0x33, // Skill not high enough
    SPELL_FAILED_MAINHAND_EMPTY                 = 0x34, // Your weapon hand is empty
    SPELL_FAILED_MOVING                         = 0x35, // Can't do that while moving
    SPELL_FAILED_NEED_AMMO                      = 0x36, // Ammo needs to be in the paper doll ammo slot before it can be fired
    SPELL_FAILED_NEED_AMMO_POUCH                = 0x37, // Requires: %s
    SPELL_FAILED_NEED_EXOTIC_AMMO               = 0x38, // Requires exotic ammo: %s
    SPELL_FAILED_NEED_MORE_ITEMS                = 0x39, // Requires %d %s
    SPELL_FAILED_NOPATH                         = 0x3A, // No path available
    SPELL_FAILED_NOT_BEHIND                     = 0x3B, // You must be behind your target
    SPELL_FAILED_NOT_FISHABLE                   = 0x3C, // Your cast didn't land in fishable water
    SPELL_FAILED_NOT_FLYING                     = 0x3D, // You are flying
    SPELL_FAILED_NOT_HERE                       = 0x3E, // You can't use that here
    SPELL_FAILED_NOT_INFRONT                    = 0x3F, // You must be in front of your target
    SPELL_FAILED_NOT_IN_CONTROL                 = 0x40, // You are not in control of your actions
    SPELL_FAILED_NOT_KNOWN                      = 0x41, // Spell not learned
    SPELL_FAILED_NOT_MOUNTED                    = 0x42, // You are mounted
    SPELL_FAILED_NOT_ON_TAXI                    = 0x43, // You are in flight
    SPELL_FAILED_NOT_ON_TRANSPORT               = 0x44, // You are on a transport
    SPELL_FAILED_NOT_READY                      = 0x45, // Spell is not ready yet
    SPELL_FAILED_NOT_SHAPESHIFT                 = 0x46, // You are in shapeshift form
    SPELL_FAILED_NOT_STANDING                   = 0x47, // You must be standing to do that
    SPELL_FAILED_NOT_TRADEABLE                  = 0x48, // You can only use this on an object you own
    SPELL_FAILED_NOT_TRADING                    = 0x49, // Tried to enchant a trade item, but not trading
    SPELL_FAILED_NOT_UNSHEATHED                 = 0x4A, // You have to be unsheathed to do that! (with yellow color)
    SPELL_FAILED_NOT_WHILE_GHOST                = 0x4B, // Can't cast as ghost
    SPELL_FAILED_NOT_WHILE_LOOTING              = 0x4C, // You are busy looting
    SPELL_FAILED_NO_AMMO                        = 0x4D, // Out of ammo
    SPELL_FAILED_NO_CHARGES_REMAIN              = 0x4E, // No charges remain
    SPELL_FAILED_NO_CHAMPION                    = 0x4F, // You haven't selected a champion
    SPELL_FAILED_NO_COMBO_POINTS                = 0x50, // That ability requires combo points
    SPELL_FAILED_NO_DUELING                     = 0x51, // Dueling isn't allowed here
    SPELL_FAILED_NO_ENDURANCE                   = 0x52, // Not enough endurance
    SPELL_FAILED_NO_FISH                        = 0x53, // There aren't any fish here
    SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED    = 0x54, // Can't use items while shapeshifted
    SPELL_FAILED_NO_MOUNTS_ALLOWED              = 0x55, // You can't mount here
    SPELL_FAILED_NO_PET                         = 0x56, // You do not have a pet
    SPELL_FAILED_NO_POWER                       = 0x57, // Not enough mana (tested on warrior)
    SPELL_FAILED_NOTHING_TO_DISPEL              = 0x58, // Nothing to dispel
    SPELL_FAILED_NOTHING_TO_STEAL               = 0x59, // Nothing to steal
    SPELL_FAILED_ONLY_ABOVEWATER                = 0x5A, // Cannot use while swimming
    SPELL_FAILED_ONLY_DAYTIME                   = 0x5B, // Can only use during the day
    SPELL_FAILED_ONLY_INDOORS                   = 0x5C, // Can only use indoors
    SPELL_FAILED_ONLY_MOUNTED                   = 0x5D, // Can only use while mounted
    SPELL_FAILED_ONLY_NIGHTTIME                 = 0x5E, // Can only use during the night
    SPELL_FAILED_ONLY_OUTDOORS                  = 0x5F, // Can only use outside
    SPELL_FAILED_ONLY_SHAPESHIFT                = 0x60, // Must be in %s
    SPELL_FAILED_ONLY_STEALTHED                 = 0x61, // You must be in stealth mode
    SPELL_FAILED_ONLY_UNDERWATER                = 0x62, // Can only use while swimming
    SPELL_FAILED_OUT_OF_RANGE                   = 0x63, // Out of range
    SPELL_FAILED_PACIFIED                       = 0x64, // Can't use that ability while pacified
    SPELL_FAILED_POSSESSED                      = 0x65, // You are possessed
    SPELL_FAILED_REAGENTS                       = 0x66, // Missing reagent: %s
    SPELL_FAILED_REQUIRES_AREA                  = 0x67, // You need to be in %s
    SPELL_FAILED_REQUIRES_SPELL_FOCUS           = 0x68, // Requires %s
    SPELL_FAILED_ROOTED                         = 0x69, // You are unable to move
    SPELL_FAILED_SILENCED                       = 0x6A, // Can't do that while silenced
    SPELL_FAILED_SPELL_IN_PROGRESS              = 0x6B, // Another action is in progress
    SPELL_FAILED_SPELL_LEARNED                  = 0x6C, // You have already learned the spell
    SPELL_FAILED_SPELL_UNAVAILABLE              = 0x6D, // The spell is not available to you
    SPELL_FAILED_STUNNED                        = 0x6E, // Can't do that while stunned
    SPELL_FAILED_TARGETS_DEAD                   = 0x6F, // Your target is dead
    SPELL_FAILED_TARGET_AFFECTING_COMBAT        = 0x70, // Target is in combat
    SPELL_FAILED_TARGET_AURASTATE               = 0x71, // You can't do that yet
    SPELL_FAILED_TARGET_DUELING                 = 0x72, // Target is currently dueling
    SPELL_FAILED_TARGET_ENEMY                   = 0x73, // Target is hostile
    SPELL_FAILED_TARGET_ENRAGED                 = 0x74, // Target is too enraged to be charmed
    SPELL_FAILED_TARGET_FRIENDLY                = 0x75, // Target is friendly
    SPELL_FAILED_TARGET_IN_COMBAT               = 0x76, // The target can't be in combat
    SPELL_FAILED_TARGET_IS_PLAYER               = 0x77, // Can't target players
    SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED    = 0x78, // Can't target player controlled units
    SPELL_FAILED_TARGET_NOT_DEAD                = 0x79, // Target is alive
    SPELL_FAILED_TARGET_NOT_IN_PARTY            = 0x7A, // Target is not in your party
    SPELL_FAILED_TARGET_NOT_LOOTED              = 0x7B, // Creature must be looted first
    SPELL_FAILED_TARGET_NOT_PLAYER              = 0x7C, // Target is not a player
    SPELL_FAILED_TARGET_NO_POCKETS              = 0x7D, // No pockets to pick
    SPELL_FAILED_TARGET_NO_WEAPONS              = 0x7E, // Target has no weapons equipped
    SPELL_FAILED_TARGET_NO_RANGED_WEAPONS       = 0x7F, // Target has no ranged weapons equipped
    SPELL_FAILED_TARGET_UNSKINNABLE             = 0x80, // Creature is not skinnable
    SPELL_FAILED_THIRST_SATIATED                = 0x81,
    SPELL_FAILED_TOO_CLOSE                      = 0x82, // Target too close
    SPELL_FAILED_TOO_MANY_OF_ITEM               = 0x83, // You have too many of that item already
    SPELL_FAILED_TOTEM_CATEGORY                 = 0x84, // Requires %s
    SPELL_FAILED_TOTEMS                         = 0x85, // Requires %s
    SPELL_FAILED_TRY_AGAIN                      = 0x86, // Failed attempt
    SPELL_FAILED_UNIT_NOT_BEHIND                = 0x87, // Target needs to be behind you
    SPELL_FAILED_UNIT_NOT_INFRONT               = 0x88, // Target needs to be in front of you
    SPELL_FAILED_TARGET_VISION_OBSCURED         = 0x89, // Your vision of the target is obscured
    SPELL_FAILED_WRONG_PET_FOOD                 = 0x8A, // Your pet doesn't like that food
    SPELL_FAILED_NOT_WHILE_FATIGUED             = 0x8B, // Can't cast while fatigued
    SPELL_FAILED_TARGET_NOT_IN_INSTANCE         = 0x8C, // Target must be in this instance
    SPELL_FAILED_NOT_WHILE_TRADING              = 0x8D, // Can't cast while trading
    SPELL_FAILED_TARGET_NOT_IN_RAID             = 0x8E, // Target is not in your party or raid group
    SPELL_FAILED_TARGET_FREEFORALL              = 0x8F, // Target is currently in free-for-all PvP combat
    SPELL_FAILED_NO_EDIBLE_CORPSES              = 0x90, // There are no nearby corpses to eat
    SPELL_FAILED_ONLY_BATTLEGROUNDS             = 0x91, // Can only use in battlegrounds
    SPELL_FAILED_TARGET_NOT_GHOST               = 0x92, // Target is not a ghost
    SPELL_FAILED_TRANSFORM_UNUSABLE             = 0x93, // You can't use the new item
    SPELL_FAILED_WRONG_WEATHER                  = 0x94, // The weather isn't right for that
    SPELL_FAILED_DAMAGE_IMMUNE                  = 0x95, // You can't do that while you are immune
    SPELL_FAILED_PREVENTED_BY_MECHANIC          = 0x96, // Can't do that while %s
    SPELL_FAILED_PLAY_TIME                      = 0x97, // Maximum play time exceeded
    SPELL_FAILED_REPUTATION                     = 0x98, // Your reputation isn't high enough
    SPELL_FAILED_MIN_SKILL                      = 0x99, // Your skill is not high enough. Requires %s(%d).
    SPELL_FAILED_NOT_IN_RATED_BATTLEGROUND      = 0x9A, // You can't do that in a rated battleground
    SPELL_FAILED_NOT_ON_SHAPESHIFT              = 0x9B, // Cannot be cast on shapeshifted target
    SPELL_FAILED_NOT_ON_STEALTHED               = 0x9C, // Spell cannot be cast on stealthed target
    SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE           = 0x9D, // Spell cannot be cast on a damage immune target
    SPELL_FAILED_NOT_ON_MOUNTED                 = 0x9E, // Spell cannot be cast on a mounted unit
    SPELL_FAILED_TOO_SHALLOW                    = 0x9F, // Water too shallow
    SPELL_FAILED_TARGET_NOT_IN_SANCTUARY        = 0xA0, // Target is not in a sanctuary
    SPELL_FAILED_TARGET_IS_TRIVIAL              = 0xA1, // Can't target trivial
    SPELL_FAILED_BM_OR_INVISGOD                 = 0xA2, // The spell cannot be cast on beastmaster or invis god targets
    SPELL_FAILED_EXPERT_RIDING_REQUIREMENT      = 0xA3, // Requires expert riding skill
    SPELL_FAILED_ARTISAN_RIDING_REQUIREMENT     = 0xA4, // Requires artisan riding skill
    SPELL_FAILED_NOT_IDLE                       = 0xA5, // Can't use while Idle
    SPELL_FAILED_NOT_INACTIVE                   = 0xA6, // Can't use while Inactive
    SPELL_FAILED_PARTIAL_PLAYTIME               = 0xA7, // You can not do this. You have more than 3 hours of online time
    SPELL_FAILED_NO_PLAYTIME                    = 0xA8, // You can not do this. You have more than 5 hours of online time
    SPELL_FAILED_NOT_IN_BATTLEGROUND            = 0xA9, // You can't do that in a battleground
    SPELL_FAILED_NOT_IN_RAID_INSTANCE           = 0xAA, // You can't do that in a raid instance
    SPELL_FAILED_ONLY_IN_ARENA                  = 0xAB, // You can only do that in an arena
    SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE = 0xAC, // Target is locked to another raid instance
    SPELL_FAILED_ON_USE_ENCHANT                 = 0xAD, // That item already has an activated ability
    SPELL_FAILED_NOT_ON_GROUND                  = 0xAE, // Cannot use on the ground
    SPELL_FAILED_CUSTOM_ERROR                   = 0xAF,
    SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW         = 0xB0, // You can't do that right now
    SPELL_FAILED_TOO_MANY_SOCKETS               = 0xB1, // That item has too many sockets
    SPELL_FAILED_INVALID_GLYPH                  = 0xB2, // That glyph cannot be inscribed there
    SPELL_FAILED_UNIQUE_GLYPH                   = 0xB3, // That glyph is already inscribed in your spellbook
    SPELL_FAILED_GLYPH_SOCKET_LOCKED            = 0xB4, // You cannot inscribe a glyph there yet
    SPELL_FAILED_NO_VALID_TARGETS               = 0xB5, // No valid targets
    SPELL_FAILED_ITEM_AT_MAX_CHARGES            = 0xB6, // Item already has the maximum number of charges
    SPELL_FAILED_NOT_IN_BARBERSHOP              = 0xB7, // You can't do that while in the barber shop
    SPELL_FAILED_FISHING_TOO_LOW                = 0xB8, // Requires fishing %d
    SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW      = 0xB9, // Item cannot be enchanted in trade
    SPELL_FAILED_SUMMON_PENDING                 = 0xBA, // A summon is already pending
    SPELL_FAILED_MAX_SOCKETS                    = 0xBB, // That item cannot receive additional sockets
    SPELL_FAILED_PET_CAN_RENAME                 = 0xBC, // You can already rename your pet
    SPELL_FAILED_TARGET_CANNOT_BE_RESURRECTED   = 0xBD, // Target cannot be resurrected
    SPELL_FAILED_CANT_TAKE_ACTIONS              = 0xBE, // You can't take actions right now
    SPELL_FAILED_CURRENCY_WEIGHT_MISMATCH       = 0xBF,
    SPELL_FAILED_WEIGHT_NOT_ENOUGH              = 0xC0, // You have not provided enough items to cast this spell
    SPELL_FAILED_WEIGHT_TOO_MUCH                = 0xC1, // You have provided too many items to cast this spell
    SPELL_FAILED_NO_SEAT                        = 0xC2, // There is no available seat
    SPELL_FAILED_REQUIRES_WATER_SURFACE         = 0xC3, // Requires water surface
    SPELL_FAILED_NOT_WHILE_SWIMMING             = 0xC4, // Cannot use while swimming
    SPELL_FAILED_UNUSED_197                     = 0xC5,
    SPELL_FAILED_NO_RESURRECT_IN_COMBAT         = 0xC6, // You can no longer resurrect during combat
    SPELL_FAILED_NOT_IN_ARENA                   = 0xC7, // You can't do that in an arena
    SPELL_FAILED_TARGET_NOT_ON_GROUND           = 0xC8, // Target is not on the ground
    SPELL_FAILED_EXCEEDED_WEEKLY_USAGE          = 0xC9, // You can only cast %s %d times a week
    SPELL_FAILED_NOT_IN_LFG_DUNGEON             = 0xCA, // You can't do that in an LFG Dungeon
    SPELL_FAILED_UNKNOWN                        = 0xCB, // Unknown reason
#elif VERSION_STRING == Mop
    SPELL_FAILED_SUCCESS                        = 0x00,
    SPELL_FAILED_AFFECTING_COMBAT               = 0x01, // You are in combat
    SPELL_FAILED_ALREADY_AT_FULL_HEALTH         = 0x02, // You are already at full Health
    SPELL_FAILED_ALREADY_AT_FULL_MANA           = 0x03, // You are already at full Mana
    SPELL_FAILED_ALREADY_AT_FULL_POWER          = 0x04, // You are already at full Rage (tested on warrior)
    SPELL_FAILED_ALREADY_BEING_TAMED            = 0x05, // That creature is already being tamed
    SPELL_FAILED_ALREADY_HAVE_CHARM             = 0x06, // You already control a charmed creature
    SPELL_FAILED_ALREADY_HAVE_SUMMON            = 0x07, // You already control a summoned creature
    SPELL_FAILED_ALREADY_HAVE_PET               = 0x08, // You must dismiss your current pet first
    SPELL_FAILED_ALREADY_OPEN                   = 0x09, // Already open
    SPELL_FAILED_AURA_BOUNCED                   = 0x0A, // A more powerful spell is already active
    SPELL_FAILED_AUTOTRACK_INTERRUPTED          = 0x0B,
    SPELL_FAILED_BAD_IMPLICIT_TARGETS           = 0x0C, // You have no target
    SPELL_FAILED_BAD_TARGETS                    = 0x0D, // Invalid target
    SPELL_FAILED_CANT_BE_CHARMED                = 0x0E, // Target can't be charmed
    SPELL_FAILED_CANT_BE_DISENCHANTED           = 0x0F, // Item cannot be disenchanted
    SPELL_FAILED_CANT_BE_DISENCHANTED_SKILL     = 0x10, // Your enchanting skill is not high enough to disenchant that
    SPELL_FAILED_CANT_BE_MILLED                 = 0x11, // You cannot mill that
    SPELL_FAILED_CANT_BE_PROSPECTED             = 0x12, // There are no gems in this
    SPELL_FAILED_CANT_CAST_ON_TAPPED            = 0x13, // Target is tapped
    SPELL_FAILED_CANT_DUEL_WHILE_INVISIBLE      = 0x14, // You can't start a duel while invisible
    SPELL_FAILED_CANT_DUEL_WHILE_STEALTHED      = 0x15, // You can't start a duel while stealthed
    SPELL_FAILED_CANT_STEALTH                   = 0x16, // You are too close to enemies
    SPELL_FAILED_CANT_UNTALENT                  = 0x17, // You can't change that talent choice while %s is on cooldown
    SPELL_FAILED_CASTER_AURASTATE               = 0x18, // You can't do that yet
    SPELL_FAILED_CASTER_DEAD                    = 0x19, // You are dead
    SPELL_FAILED_CHARMED                        = 0x1A, // Can't do that while charmed
    SPELL_FAILED_CHEST_IN_USE                   = 0x1B, // That is already being used
    SPELL_FAILED_CONFUSED                       = 0x1C, // Can't do that while confused
    SPELL_FAILED_DONT_REPORT                    = 0x1D,
    SPELL_FAILED_EQUIPPED_ITEM                  = 0x1E, // Must have the proper item equipped
    SPELL_FAILED_EQUIPPED_ITEM_CLASS            = 0x1F, // Must have a %s equipped
    SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND   = 0x20, // Must have a %s equipped in the main hand
    SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND    = 0x21, // Must have a %s equipped in the offhand
    SPELL_FAILED_ERROR                          = 0x22, // Internal error
    SPELL_FAILED_FALLING                        = 0x23, // Can't do that while falling
    SPELL_FAILED_FIZZLE                         = 0x24, // Fizzled
    SPELL_FAILED_FLEEING                        = 0x25, // Can't do that while fleeing
    SPELL_FAILED_FOOD_LOWLEVEL                  = 0x26, // That food's level is not high enough for your pet
    SPELL_FAILED_HIGHLEVEL                      = 0x27, // Target is too high level
    SPELL_FAILED_HUNGER_SATIATED                = 0x28,
    SPELL_FAILED_IMMUNE                         = 0x29, // Immune
    SPELL_FAILED_INCORRECT_AREA                 = 0x2A, // You are in the wrong zone
    SPELL_FAILED_INTERRUPTED                    = 0x2B, // Interrupted
    SPELL_FAILED_INTERRUPTED_COMBAT             = 0x2C, // Interrupted
    SPELL_FAILED_ITEM_ALREADY_ENCHANTED         = 0x2D, // Item is already enchanted
    SPELL_FAILED_ITEM_GONE                      = 0x2E, // Item is gone
    SPELL_FAILED_ITEM_NOT_FOUND                 = 0x2F, // Tried to enchant an item that didn't exist
    SPELL_FAILED_ITEM_NOT_READY                 = 0x30, // Item is not ready yet
    SPELL_FAILED_LEVEL_REQUIREMENT              = 0x31, // You are not high enough level
    SPELL_FAILED_LINE_OF_SIGHT                  = 0x32, // Target not in line of sight
    SPELL_FAILED_LOWLEVEL                       = 0x33, // Target is too low level
    SPELL_FAILED_LOW_CASTLEVEL                  = 0x34, // Skill not high enough
    SPELL_FAILED_MAINHAND_EMPTY                 = 0x35, // Your weapon hand is empty
    SPELL_FAILED_MOVING                         = 0x36, // Can't do that while moving
    SPELL_FAILED_NEED_AMMO                      = 0x37, // Ammo needs to be in the paper doll ammo slot before it can be fired
    SPELL_FAILED_NEED_AMMO_POUCH                = 0x38, // Requires: %s
    SPELL_FAILED_NEED_EXOTIC_AMMO               = 0x39, // Requires exotic ammo: %s
    SPELL_FAILED_NEED_MORE_ITEMS                = 0x3A, // Requires %d %s
    SPELL_FAILED_NOPATH                         = 0x3B, // No path available
    SPELL_FAILED_NOT_BEHIND                     = 0x3C, // You must be behind your target
    SPELL_FAILED_NOT_FISHABLE                   = 0x3D, // Your cast didn't land in fishable water
    SPELL_FAILED_NOT_FLYING                     = 0x3E, // You are flying
    SPELL_FAILED_NOT_HERE                       = 0x3F, // You can't use that here
    SPELL_FAILED_NOT_INFRONT                    = 0x40, // You must be in front of your target
    SPELL_FAILED_NOT_IN_CONTROL                 = 0x41, // You are not in control of your actions
    SPELL_FAILED_NOT_KNOWN                      = 0x42, // Spell not learned
    SPELL_FAILED_NOT_MOUNTED                    = 0x43, // You are mounted
    SPELL_FAILED_NOT_ON_TAXI                    = 0x44, // You are in flight
    SPELL_FAILED_NOT_ON_TRANSPORT               = 0x45, // You are on a transport
    SPELL_FAILED_NOT_READY                      = 0x46, // Spell is not ready yet
    SPELL_FAILED_NOT_SHAPESHIFT                 = 0x47, // You are in shapeshift form
    SPELL_FAILED_NOT_STANDING                   = 0x48, // You must be standing to do that
    SPELL_FAILED_NOT_TRADEABLE                  = 0x49, // You can only use this on an object you own
    SPELL_FAILED_NOT_TRADING                    = 0x4A, // Tried to enchant a trade item, but not trading
    SPELL_FAILED_NOT_UNSHEATHED                 = 0x4B, // You have to be unsheathed to do that! (with yellow color)
    SPELL_FAILED_NOT_WHILE_GHOST                = 0x4C, // Can't cast as ghost
    SPELL_FAILED_NOT_WHILE_LOOTING              = 0x4D, // You are busy looting
    SPELL_FAILED_NO_AMMO                        = 0x4E, // Out of ammo
    SPELL_FAILED_NO_CHARGES_REMAIN              = 0x4F, // No charges remain
    SPELL_FAILED_NO_CHAMPION                    = 0x50, // You haven't selected a champion
    SPELL_FAILED_NO_COMBO_POINTS                = 0x51, // That ability requires combo points
    SPELL_FAILED_NO_DUELING                     = 0x52, // Dueling isn't allowed here
    SPELL_FAILED_NO_ENDURANCE                   = 0x53, // Not enough endurance
    SPELL_FAILED_NO_FISH                        = 0x54, // There aren't any fish here
    SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED    = 0x55, // Can't use items while shapeshifted
    SPELL_FAILED_NO_MOUNTS_ALLOWED              = 0x56, // You can't mount here
    SPELL_FAILED_NO_PET                         = 0x57, // You do not have a pet
    SPELL_FAILED_NO_POWER                       = 0x58, // Not enough mana (tested on warrior)
    SPELL_FAILED_NOTHING_TO_DISPEL              = 0x59, // Nothing to dispel
    SPELL_FAILED_NOTHING_TO_STEAL               = 0x5A, // Nothing to steal
    SPELL_FAILED_ONLY_ABOVEWATER                = 0x5B, // Cannot use while swimming
    SPELL_FAILED_ONLY_DAYTIME                   = 0x5C, // Can only use during the day
    SPELL_FAILED_ONLY_INDOORS                   = 0x5D, // Can only use indoors
    SPELL_FAILED_ONLY_MOUNTED                   = 0x5E, // Can only use while mounted
    SPELL_FAILED_ONLY_NIGHTTIME                 = 0x5F, // Can only use during the night
    SPELL_FAILED_ONLY_OUTDOORS                  = 0x60, // Can only use outside
    SPELL_FAILED_ONLY_SHAPESHIFT                = 0x61, // Must be in %s
    SPELL_FAILED_ONLY_STEALTHED                 = 0x62, // You must be in stealth mode
    SPELL_FAILED_ONLY_UNDERWATER                = 0x63, // Can only use while swimming
    SPELL_FAILED_OUT_OF_RANGE                   = 0x64, // Out of range
    SPELL_FAILED_PACIFIED                       = 0x65, // Can't use that ability while pacified
    SPELL_FAILED_POSSESSED                      = 0x66, // You are possessed
    SPELL_FAILED_REAGENTS                       = 0x67, // Missing reagent: %s
    SPELL_FAILED_REQUIRES_AREA                  = 0x68, // You need to be in %s
    SPELL_FAILED_REQUIRES_SPELL_FOCUS           = 0x69, // Requires %s
    SPELL_FAILED_ROOTED                         = 0x6A, // You are unable to move
    SPELL_FAILED_SILENCED                       = 0x6B, // Can't do that while silenced
    SPELL_FAILED_SPELL_IN_PROGRESS              = 0x6C, // Another action is in progress
    SPELL_FAILED_SPELL_LEARNED                  = 0x6D, // You have already learned the spell
    SPELL_FAILED_SPELL_UNAVAILABLE              = 0x6E, // The spell is not available to you
    SPELL_FAILED_STUNNED                        = 0x6F, // Can't do that while stunned
    SPELL_FAILED_TARGETS_DEAD                   = 0x70, // Your target is dead
    SPELL_FAILED_TARGET_AFFECTING_COMBAT        = 0x71, // Target is in combat
    SPELL_FAILED_TARGET_AURASTATE               = 0x72, // You can't do that yet
    SPELL_FAILED_TARGET_DUELING                 = 0x73, // Target is currently dueling
    SPELL_FAILED_TARGET_ENEMY                   = 0x74, // Target is hostile
    SPELL_FAILED_TARGET_ENRAGED                 = 0x75, // Target is too enraged to be charmed
    SPELL_FAILED_TARGET_FRIENDLY                = 0x76, // Target is friendly
    SPELL_FAILED_TARGET_IN_COMBAT               = 0x77, // The target can't be in combat
    SPELL_FAILED_TARGET_IN_PET_BATTLE           = 0X78, // The target can't be in a pet battle
    SPELL_FAILED_TARGET_IS_PLAYER               = 0x79, // Can't target players
    SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED    = 0x7A, // Can't target player controlled units
    SPELL_FAILED_TARGET_NOT_DEAD                = 0x7B, // Target is alive
    SPELL_FAILED_TARGET_NOT_IN_PARTY            = 0x7C, // Target is not in your party
    SPELL_FAILED_TARGET_NOT_LOOTED              = 0x7D, // Creature must be looted first
    SPELL_FAILED_TARGET_NOT_PLAYER              = 0x7E, // Target is not a player
    SPELL_FAILED_TARGET_NO_POCKETS              = 0x7F, // No pockets to pick
    SPELL_FAILED_TARGET_NO_WEAPONS              = 0x80, // Target has no weapons equipped
    SPELL_FAILED_TARGET_NO_RANGED_WEAPONS       = 0x81, // Target has no ranged weapons equipped
    SPELL_FAILED_TARGET_UNSKINNABLE             = 0x82, // Creature is not skinnable
    SPELL_FAILED_THIRST_SATIATED                = 0x83,
    SPELL_FAILED_TOO_CLOSE                      = 0x84, // Target too close
    SPELL_FAILED_TOO_MANY_OF_ITEM               = 0x85, // You have too many of that item already
    SPELL_FAILED_TOTEM_CATEGORY                 = 0x86, // Requires %s
    SPELL_FAILED_TOTEMS                         = 0x87, // Requires %s
    SPELL_FAILED_TRY_AGAIN                      = 0x88, // Failed attempt
    SPELL_FAILED_UNIT_NOT_BEHIND                = 0x89, // Target needs to be behind you
    SPELL_FAILED_UNIT_NOT_INFRONT               = 0x8A, // Target needs to be in front of you
    SPELL_FAILED_TARGET_VISION_OBSCURED         = 0x8B, // Your vision of the target is obscured
    SPELL_FAILED_WRONG_PET_FOOD                 = 0x8C, // Your pet doesn't like that food
    SPELL_FAILED_NOT_WHILE_FATIGUED             = 0x8D, // Can't cast while fatigued
    SPELL_FAILED_TARGET_NOT_IN_INSTANCE         = 0x8E, // Target must be in this instance
    SPELL_FAILED_NOT_WHILE_TRADING              = 0x8F, // Can't cast while trading
    SPELL_FAILED_TARGET_NOT_IN_RAID             = 0x90, // Target is not in your party or raid group
    SPELL_FAILED_TARGET_FREEFORALL              = 0x91, // Target is currently in free-for-all PvP combat
    SPELL_FAILED_NO_EDIBLE_CORPSES              = 0x92, // There are no nearby corpses to eat
    SPELL_FAILED_ONLY_BATTLEGROUNDS             = 0x93, // Can only use in battlegrounds
    SPELL_FAILED_TARGET_NOT_GHOST               = 0x94, // Target is not a ghost
    SPELL_FAILED_TRANSFORM_UNUSABLE             = 0x95, // You can't use the new item
    SPELL_FAILED_WRONG_WEATHER                  = 0x96, // The weather isn't right for that
    SPELL_FAILED_DAMAGE_IMMUNE                  = 0x97, // You can't do that while you are immune
    SPELL_FAILED_PREVENTED_BY_MECHANIC          = 0x98, // Can't do that while %s
    SPELL_FAILED_PLAY_TIME                      = 0x99, // Maximum play time exceeded
    SPELL_FAILED_REPUTATION                     = 0x9A, // Your reputation isn't high enough
    SPELL_FAILED_MIN_SKILL                      = 0x9B, // Your skill is not high enough. Requires %s(%d).
    SPELL_FAILED_NOT_IN_RATED_BATTLEGROUND      = 0x9C, // You can't do that in a rated battleground
    SPELL_FAILED_NOT_ON_SHAPESHIFT              = 0x9D, // Cannot be cast on shapeshifted target
    SPELL_FAILED_NOT_ON_STEALTHED               = 0x9E, // Spell cannot be cast on stealthed target
    SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE           = 0x9F, // Spell cannot be cast on a damage immune target
    SPELL_FAILED_NOT_ON_MOUNTED                 = 0xA0, // Spell cannot be cast on a mounted unit
    SPELL_FAILED_TOO_SHALLOW                    = 0xA1, // Water too shallow
    SPELL_FAILED_TARGET_NOT_IN_SANCTUARY        = 0xA2, // Target is not in a sanctuary
    SPELL_FAILED_TARGET_IS_TRIVIAL              = 0xA3, // Can't target trivial
    SPELL_FAILED_BM_OR_INVISGOD                 = 0xA4, // The spell cannot be cast on beastmaster or invis god targets
    SPELL_FAILED_APPRENTICE_RIDING_REQUIREMENT  = 0XA5, // Requires apprentice riding skill
    SPELL_FAILED_JOURNEYMAN_RIDING_REQUIREMENT  = 0XA6, // Requires journeyman riding skill
    SPELL_FAILED_EXPERT_RIDING_REQUIREMENT      = 0xA7, // Requires expert riding skill
    SPELL_FAILED_ARTISAN_RIDING_REQUIREMENT     = 0xA8, // Requires artisan riding skill
    SPELL_FAILED_MASTER_RIDING_REQUIREMENT      = 0xA9, // Requires master riding skill
    SPELL_FAILED_COLD_RIDING_REQUIREMENT        = 0xAA, // Requires Cold Weather flying skill
    SPELL_FAILED_FLIGHT_MASTER_REQUIREMENT      = 0xAB, // Requires Flight Master's license skill
    SPELL_FAILED_CS_RIDING_REQUIREMENT          = 0xAC, // Requires Cloud Serpent riding skill
    SPELL_FAILED_PANDA_RIDING_REQUIREMENT       = 0xAD, // Requires Wisdom of the Four Winds skill
    SPELL_FAILED_NOT_IDLE                       = 0xAE, // Can't use while Idle
    SPELL_FAILED_NOT_INACTIVE                   = 0xAF, // Can't use while Inactive
    SPELL_FAILED_PARTIAL_PLAYTIME               = 0xB0, // You can not do this. You have more than 3 hours of online time
    SPELL_FAILED_NO_PLAYTIME                    = 0xB1, // You can not do this. You have more than 5 hours of online time
    SPELL_FAILED_NOT_IN_BATTLEGROUND            = 0xB2, // You can't do that in a battleground
    SPELL_FAILED_NOT_IN_RAID_INSTANCE           = 0xB3, // You can't do that in a raid instance
    SPELL_FAILED_ONLY_IN_ARENA                  = 0xB4, // You can only do that in an arena
    SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE = 0xB5, // Target is locked to another raid instance
    SPELL_FAILED_ON_USE_ENCHANT                 = 0xB6, // That item already has an activated ability
    SPELL_FAILED_NOT_ON_GROUND                  = 0xB7, // Cannot use on the ground
    SPELL_FAILED_CUSTOM_ERROR                   = 0xB8,
    SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW         = 0xB9, // You can't do that right now
    SPELL_FAILED_TOO_MANY_SOCKETS               = 0xBA, // That item has too many sockets
    SPELL_FAILED_INVALID_GLYPH                  = 0xBB, // That glyph cannot be inscribed there
    SPELL_FAILED_UNIQUE_GLYPH                   = 0xBC, // That glyph is already inscribed in your spellbook
    SPELL_FAILED_GLYPH_SOCKET_LOCKED            = 0xBD, // You cannot inscribe a glyph there yet
    SPELL_FAILED_NO_VALID_TARGETS               = 0xBE, // No valid targets
    SPELL_FAILED_ITEM_AT_MAX_CHARGES            = 0xBF, // Item already has the maximum number of charges
    SPELL_FAILED_NOT_IN_BARBERSHOP              = 0xC0, // You can't do that while in the barber shop
    SPELL_FAILED_FISHING_TOO_LOW                = 0xC1, // Requires fishing %d
    SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW      = 0xC2, // Item cannot be enchanted in trade
    SPELL_FAILED_SUMMON_PENDING                 = 0xC3, // A summon is already pending
    SPELL_FAILED_MAX_SOCKETS                    = 0xC4, // That item cannot receive additional sockets
    SPELL_FAILED_PET_CAN_RENAME                 = 0xC5, // You can already rename your pet
    SPELL_FAILED_TARGET_CANNOT_BE_RESURRECTED   = 0xC6, // Target cannot be resurrected
    SPELL_FAILED_CANT_TAKE_ACTIONS              = 0xC7, // You can't take actions right now
    SPELL_FAILED_CURRENCY_WEIGHT_MISMATCH       = 0xC8,
    SPELL_FAILED_WEIGHT_NOT_ENOUGH              = 0xC9, // You have not provided enough items to cast this spell
    SPELL_FAILED_WEIGHT_TOO_MUCH                = 0xCA, // You have provided too many items to cast this spell
    SPELL_FAILED_NO_SEAT                        = 0xCB, // There is no available seat
    SPELL_FAILED_REQUIRES_WATER_SURFACE         = 0xCC, // Requires water surface
    SPELL_FAILED_NOT_WHILE_SWIMMING             = 0xCD, // Cannot use while swimming
    SPELL_FAILED_UNUSED_197                     = 0xCE,
    SPELL_FAILED_NO_RESURRECT_IN_COMBAT         = 0xCF, // You can no longer resurrect during combat
    SPELL_FAILED_NOT_IN_ARENA                   = 0xD0, // You can't do that in an arena
    SPELL_FAILED_TARGET_NOT_ON_GROUND           = 0xD1, // Target is not on the ground
    SPELL_FAILED_EXCEEDED_WEEKLY_USAGE          = 0xD2, // You can only cast %s %d times a week
    SPELL_FAILED_NOT_IN_LFG_DUNGEON             = 0xD3, // You can't do that in an LFG Dungeon
    SPELL_FAILED_BAD_TARGET_FILTER              = 0xD4,
    SPELL_FAILED_NOT_ENOUGH_TARGETS             = 0xD5,
    SPELL_FAILED_NO_SPEC                        = 0XD6, // You need to choose a character specialization
    SPELL_FAILED_CANT_ADD_BATTLE_PET            = 0XD7, // Can't add Companion to your account
    SPELL_FAILED_CANT_UPGRADE_BATTLE_PET        = 0XD8, // Failed to Upgrade Pet
    SPELL_FAILED_WRONG_BATTLE_PET_TYPE          = 0XD9, // Wrong Pet type
    SPELL_FAILED_NO_DUNGEON_ENCOUNTER           = 0XDA, // Requires engaging %s
    SPELL_FAILED_NO_TELEPORT_FROM_DUNGEON       = 0XDB,
    SPELL_FAILED_MAX_LEVEL_TOO_LOW              = 0XDC,
    SPELL_FAILED_UNKNOWN                        = 0xDD, // Unknown reason
#endif
    SPELL_CAST_SUCCESS                          = 0xFF // Custom serverside value
};

// Extra error messages, used with SPELL_FAILED_CUSTOM_ERROR
// Not available in Classic or TBC
enum SpellExtraError : uint8_t
{
    SPELL_EXTRA_ERROR_NONE                      = 0,
    SPELL_EXTRA_ERROR_UNK1                      = 1, // Something bad happened, and we want to display a custom message!
    SPELL_EXTRA_ERROR_UNK2                      = 2, // Alex broke your quest! Thank him later!
    SPELL_EXTRA_ERROR_UNK3                      = 3, // This spell may only be used on Helpless Wintergarde Villagers that have not been rescued
    SPELL_EXTRA_ERROR_UNK4                      = 4, // Requires that you be wearing the Warsong Orc Disguise
    SPELL_EXTRA_ERROR_UNK5                      = 5, // You must be closer to a plague wagon in order to drop off your 7th Legion Siege Engineer
    SPELL_EXTRA_ERROR_UNK6                      = 6, // You cannot target friendly units outside your party
    SPELL_EXTRA_ERROR_UNK7                      = 7, // You must target a weakened chill nymph
    SPELL_EXTRA_ERROR_UNK8                      = 8, // The Imbued Scourge Shroud will only work when equipped in the Temple City of En'kilah
    SPELL_EXTRA_ERROR_UNK9                      = 9, // Requires Corpse Dust
    SPELL_EXTRA_ERROR_UNK10                     = 10, // You cannot summon another gargoyle yet
    SPELL_EXTRA_ERROR_UNK11                     = 11, // Requires Corpse Dust if the target is not dead and humanoid
    SPELL_EXTRA_ERROR_UNK12                     = 12, // Can only be placed near Shatterhorn
    SPELL_EXTRA_ERROR_UNK13                     = 13, // You must first select a Proto-Drake Egg
    SPELL_EXTRA_ERROR_UNK14                     = 14,
    SPELL_EXTRA_ERROR_UNK15                     = 15, // You must target a Fjord Turkey
    SPELL_EXTRA_ERROR_UNK16                     = 16, // You must target a Fjord Hawk
    SPELL_EXTRA_ERROR_UNK17                     = 17, // You are too far from the bouy
    SPELL_EXTRA_ERROR_UNK18                     = 18, // Must be used near an oil slick
    SPELL_EXTRA_ERROR_UNK19                     = 19, // You must be closer to the buoy!
    SPELL_EXTRA_ERROR_UNK20                     = 20, // You may only call for the aid of a Wyrmrest Vanguisher in Wyrmrest Temple, The Dragon Wastes, Galakrond's Rest or The Wicked Coil
    SPELL_EXTRA_ERROR_UNK21                     = 21, // That can only be used on a Ice Heart Jormungar Spawn
    SPELL_EXTRA_ERROR_UNK22                     = 22, // You must be closer to a sinkhole to use your map
    SPELL_EXTRA_ERROR_UNK23                     = 23, // You may only call down a stampede on Harold Lane
    SPELL_EXTRA_ERROR_UNK24                     = 24, // You may only use the Pouch of Crushed Bloodspore on Gammothra or other magnataur in the Bloodspore Plains and Gammoth
    SPELL_EXTRA_ERROR_UNK25                     = 25, // Requires the magmawyrm resurrection chamber in the back of the Maw of Neltharion
    SPELL_EXTRA_ERROR_UNK26                     = 26, // You may only call down a Wintergarde Gryphon in Wintergarde Keep or the Carrion Fields
    SPELL_EXTRA_ERROR_UNK27                     = 27, // What are you doing? Only aim that thing at Wilhelm!
    SPELL_EXTRA_ERROR_UNK28                     = 28, // Not enough health!
    SPELL_EXTRA_ERROR_UNK29                     = 29, // There are no nearby corpses to use
    SPELL_EXTRA_ERROR_UNK30                     = 30, // You've created enough ghouls. Return to Gothik the Harvester at Death's Breach
    SPELL_EXTRA_ERROR_UNK31                     = 31, // Your companion does not want to come here. Go further down the Sundered Shard
    SPELL_EXTRA_ERROR_UNK32                     = 32, // Must be in Cat Form
    SPELL_EXTRA_ERROR_UNK33                     = 33, // Only Death Knights may enter Ebon Hold
    SPELL_EXTRA_ERROR_UNK34                     = 34, // Must be in Cat Form, Bear Form or Dire Bear Form
    SPELL_EXTRA_ERROR_UNK35                     = 35, // You must be within range of a Helpless Wintergarde Villager
    SPELL_EXTRA_ERROR_UNK36                     = 36, // You cannot target an elemental or mechanical corpse
    SPELL_EXTRA_ERROR_UNK37                     = 37, // This teleport crystal cannot be used until the teleport crystal in Dalaran has been used at least once
    SPELL_EXTRA_ERROR_UNK38                     = 38, // You are already holding something in your hand. You must throw the creature in your hand before picking up another
    SPELL_EXTRA_ERROR_UNK39                     = 39, // You don't have anything to throw! Find a Vargul and use Gymer Grab to pick one up!
    SPELL_EXTRA_ERROR_UNK40                     = 40, // Bouldergrag's War Horn can only be used within 10 yards of Valduran the Stormborn
    SPELL_EXTRA_ERROR_UNK41                     = 41, // You are not carrying a passenger. There is nobody to drop off.
    SPELL_EXTRA_ERROR_UNK42                     = 42, // You cannot build any more siege vehicles
    SPELL_EXTRA_ERROR_UNK43                     = 43, // You are already carrying a captured Argent Crusader. You must return to the Argent Vanguard infirmary and drop off your passenger before you may pick up another.
    SPELL_EXTRA_ERROR_UNK44                     = 44, // You can't do that while rooted
    SPELL_EXTRA_ERROR_UNK45                     = 45, // Requires a nearby target
    SPELL_EXTRA_ERROR_UNK46                     = 46, // Nothing left to discover.
    SPELL_EXTRA_ERROR_UNK47                     = 47, // No targets close enough to bluff.
    SPELL_EXTRA_ERROR_UNK48                     = 48, // Your Iron Rune Construct is out of range
    SPELL_EXTRA_ERROR_UNK49                     = 49, // Requires Grand Master Engineer
    SPELL_EXTRA_ERROR_UNK50                     = 50, // You can't use that mount
    SPELL_EXTRA_ERROR_UNK51                     = 51, // There is nobody to eject!
    SPELL_EXTRA_ERROR_UNK52                     = 52, // The target must be bound to you
    SPELL_EXTRA_ERROR_UNK53                     = 53, // Target must be undead.
    SPELL_EXTRA_ERROR_UNK54                     = 54, // You have no target or your target is too far away
    SPELL_EXTRA_ERROR_UNK55                     = 55, // Missing Reagents: Dark Matter
    SPELL_EXTRA_ERROR_UNK56                     = 56, // You can't use that item
    SPELL_EXTRA_ERROR_UNK57                     = 57, // You can't do that while Cycloned
    SPELL_EXTRA_ERROR_UNK58                     = 58, // Target is already affected by a scroll
    SPELL_EXTRA_ERROR_UNK59                     = 59, // That anti-venom is not strong enough to dispel that poison
    SPELL_EXTRA_ERROR_UNK60                     = 60, // You must have a lance equipped
    SPELL_EXTRA_ERROR_UNK61                     = 61, // You must be near the Maiden of Winter's Breath Lake
    SPELL_EXTRA_ERROR_UNK62                     = 62, // You have learned everything from that book
    SPELL_EXTRA_ERROR_UNK63                     = 63,
    SPELL_EXTRA_ERROR_UNK64                     = 64,
    SPELL_EXTRA_ERROR_GM_ONLY                   = 65, // Only GMs may use that. Your account has been reported for investigation.
    SPELL_EXTRA_ERROR_UNK66                     = 66, // You must reach level 58 to use this portal
    SPELL_EXTRA_ERROR_UNK67                     = 67, // You already have the maximum amount of honor
    SPELL_EXTRA_ERROR_UNK68                     = 68,
    SPELL_EXTRA_ERROR_UNK69                     = 69,
    SPELL_EXTRA_ERROR_UNK70                     = 70,
    SPELL_EXTRA_ERROR_UNK71                     = 71,
    SPELL_EXTRA_ERROR_UNK72                     = 72,
    SPELL_EXTRA_ERROR_UNK73                     = 73,
    SPELL_EXTRA_ERROR_UNK74                     = 74,
    SPELL_EXTRA_ERROR_UNK75                     = 75, // You must have a demonic circle active
    SPELL_EXTRA_ERROR_UNK76                     = 76, // You already have maximum rage
    SPELL_EXTRA_ERROR_UNK77                     = 77, // Requires Engineering (350)
    SPELL_EXTRA_ERROR_UNK78                     = 78, // Your soul belongs to the Lich King
    SPELL_EXTRA_ERROR_UNK79                     = 79, // Your attendant already has an Argent Pony
    SPELL_EXTRA_ERROR_UNK80                     = 80,
    SPELL_EXTRA_ERROR_UNK81                     = 81,
    SPELL_EXTRA_ERROR_UNK82                     = 82,
    SPELL_EXTRA_ERROR_MUST_HAVE_FIRE_TOTEM      = 83, // You must have a Fire Totem active.
    SPELL_EXTRA_ERROR_UNK84                     = 84, // You may not bite other vampires
    SPELL_EXTRA_ERROR_UNK85                     = 85, // Your pet is already at your level
    SPELL_EXTRA_ERROR_UNK86                     = 86, // You do not meet the level requirements for this item
    SPELL_EXTRA_ERROR_UNK87                     = 87, // There are too many Mutated Abominations
    SPELL_EXTRA_ERROR_UNK88                     = 88, // The potions have all been depleted by Professor Putricide
    SPELL_EXTRA_ERROR_UNK89                     = 89,
    SPELL_EXTRA_ERROR_NORTHREND_MINING          = 90, // Requires level 65
    SPELL_EXTRA_ERROR_UNK91                     = 91,
    SPELL_EXTRA_ERROR_UNK92                     = 92,
    SPELL_EXTRA_ERROR_UNK93                     = 93,
    SPELL_EXTRA_ERROR_UNK94                     = 94,
    SPELL_EXTRA_ERROR_UNK95                     = 95,
    SPELL_EXTRA_ERROR_UNK96                     = 96, // You already have the max number of recruits
    SPELL_EXTRA_ERROR_UNK97                     = 97, // You already have the max number of volunteers
    SPELL_EXTRA_ERROR_UNK98                     = 98, // Frostmourne has rendered you unable to resurrect
    SPELL_EXTRA_ERROR_UNK99                     = 99  // You can't mount while affected by that shapeshift
};

enum PetTameFailure : uint8_t
{
    PETTAME_INVALIDCREATURE                     = 1, // Creature not found
    PETTAME_TOOMANY                             = 2, // You have too many pets already
    PETTAME_CREATUREALREADYOWNED                = 3, // Creature is already controlled
    PETTAME_NOTTAMEABLE                         = 4, // Creature not tameable
    PETTAME_ANOTHERSUMMONACTIVE                 = 5, // You have an active summon already
    PETTAME_UNITSCANTTAME                       = 6, // You cannot tame creatures
    PETTAME_NOPETAVAILABLE                      = 7, // You do not have a pet to summon
    PETTAME_INTERNALERROR                       = 8, // Internal pet error
    PETTAME_TOOHIGHLEVEL                        = 9, // Creature is too high level for you to tame
    PETTAME_DEAD                                = 10, // Your pet is dead
    PETTAME_NOTDEAD                             = 11, // Your pet is not dead
    PETTAME_CANTCONTROLEXOTIC                   = 12, // You are unable to control exotic creatures
#if VERSION_STRING <= WotLK
    PETTAME_UNKNOWNERROR                        = 13 // Unknown taming error
#else
    PETTAME_SLOTLOCKED                          = 13, // That slot is locked
    PETTAME_UNKNOWNERROR                        = 14 // Unknown taming error
#endif
};

enum MountFailure : uint8_t
{
    ERR_MOUNT_NOTMOUNTABLE                      = 0, // You can't mount that unit
    ERR_MOUNT_TOOFARAWAY                        = 1, // That mount is too far away
    ERR_MOUNT_ALREADYMOUNTED                    = 2, // You're already mounted
    ERR_MOUNT_INVALIDMOUNTEE                    = 3, // That unit can't be mounted
    ERR_MOUNT_NOTYOURPET                        = 4, // That mount isn't your pet
    ERR_MOUNT_OTHER                             = 5, // UNKNOWN MOUNT ERROR
    ERR_MOUNT_LOOTING                           = 6, // You can't mount while looting
    ERR_MOUNT_RACECANTMOUNT                     = 7, // You can't mount because of your race
    ERR_MOUNT_SHAPESHIFTED                      = 8, // You can't mount while shapeshifted
    ERR_MOUNT_FORCEDDISMOUNT                    = 9 // You dismount before continuing
};

enum DismountFailure : uint8_t
{
    ERR_DISMOUNT_NOPET                          = 0, // INTERNAL ERROR, YOU DON'T HAVE A PET TO DISMOUNT
    ERR_DISMOUNT_NOTMOUNTED                     = 1, // You're not mounted!
    ERR_DISMOUNT_NOTYOURPET                     = 2 // INTERNAL ERROR, DISMOUNTING A NON-PET
};
